正则表达式匹配 Microsoft Word 中的零个或多个空格

kmo*_*ort 5 regex microsoft-word

我希望我只是在这里遗漏了明显的内容,但是我到底如何将零个或多个空格与 Microsoft Word 2010 的“Regex”引擎匹配?

作为一个愚蠢的例子,我想在一个捕获组中匹配以下所有内容:

cowseat grass
cows eat grass
cows  eat grass
cows   eat grass
cows    eat grass
Run Code Online (Sandbox Code Playgroud)

我通常会做(cows\s*eat grass)并完成它。但我看不出如何匹配零个或多个空格。我想在捕获组中捕获整个短语,但我有可变数量的空格。

我一直在使用这个文档作为参考。

Kyl*_*and 8

您链接到的文档表明 Microsoft 的“正则表达式”根本不是真正的正则表达式;它们是 shell 风格的 globbing ( http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm ) 和真正的正则表达式的奇异混合体(更确切地说是混蛋)。

由于 glob 语法使用该*字符作为 regex 的同义词.*,并且 Microsoft 决定(如评论中所述)使@等价于 regex 量词+而不是*(这是愚蠢的,因为a+等效于aa*for any atom a,因此+没有必要) ,看来你倒霉了。

我个人的观点是 (1) 这很愚蠢,(2) 称这些模式为“正则表达式”充其量是一种误导,但不幸的是,除了放弃 Word 而支持正确支持的工具之外,我没有看到任何解决方法正则表达式。(虽然我认为理论上您可以尝试解析 docx 文件本身的 xml-ish 格式,提取文本,然后应用您的正则表达式....)