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

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

我希望我只是忽略了这里显而易见的东西,但是我究竟如何使用 Microsoft Word 2010 的“Regex”引擎匹配零个或多个空格?

举一个简单的例子,我想匹配捕获组中的以下所有内容:

cowseat grass
cows eat grass
cows  eat grass
cows   eat grass
cows    eat grass

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

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

答案1

您链接到的文档显示,微软的“正则表达式”实际上根本不是正则表达式;它们是 shell 风格通配符的奇怪混合体(更确切地说是私生子)(http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm) 和真正的正则表达式。

由于 glob 语法使用*字符作为正则表达式的同义词.*,并且微软决定(如评论中所述)将其@等同于正则表达式量词+而不是*(这很愚蠢,因为对于任何原子都a+等同于,因此没有必要),看起来你运气不佳。aa*a+

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

相关内容