2016-01-10 38 views
0

我使用通配符查找/替换涉及以下发现场完全懒:字查找/替换不是

([0-9]*)

(请注意,应该在该领域的后面加上一个空格,即使虽然我不能让它在这里坚持对SO)

当我搜索的文本:

13 April Boon 87 155

(仅仅因为它在这里没有视觉上清楚,除了“87 155”和“April Boon”,它们都有空格以外,所有东西都应该是制表符分隔的。)

由于post-star(名义上)是一个懒惰评估者,我希望这只匹配“87”。这是我想要的结果!

但它正在4场比赛: “4月13日” “4月3日” “87” “7”

这是更加神秘的对我来说,因为它不匹配“4月13日宝87“或”4月3日Boon 87“

这是怎么回事?我如何获得我所寻找的比赛?

在此先感谢!

+0

你怎么期望它匹配'87'而不是'13'?另外,'*'不是懒惰的提名者,'*?'是,但这不会产生问题。你也应该摆脱星星,并使用'+',这样你就不会替换空的空间。 –

+0

问题是,当您检查*使用通配符*框时,您希望Word完全支持正则表达式,而不是。它支持有限的通配符和字符组。它不支持正则表达式,因此使用正则表达式标签是不合适的。(事实上​​,你的问题实际上是在这里脱离主题;它属于[su],因为它涉及到使用Word查找和替换,并且与编程无关。) –

+0

@AndrisLeduskrasts,13和4月之间有一个选项卡。 –

回答

2

您的通配符模式按预期工作。你的模式([0-9]*)比赛:

  • ([0-9] - 数字(捕获组1,可以用\1参考)
  • *) - 任何字符,但尽可能少到第一...
  • - 空间。

由于匹配是从左到右找到的,因此您有4个匹配项。 [0-9]匹配一个数字。

你只能用(<[0-9]@>) <[0-9]@>^13这样的正则表达式捕获87

  • (<[0-9]@>) - 包含一个或多个数字
  • 一个整体 “字” - 一个空间
  • <[0-9]@> - 包含一个或多个数字
  • ^13一个整体 “字” - 回车
+0

既然解决了你的问题,请考虑接受。如果您发现它有帮助,请考虑upvoting。 –