[英]Regex to find/replace text in MS Word not working
我有一个我写的 python 脚本的输出,它包含从一个大数据集中提取的文本部分,在通过正则表达式匹配一些模式之后。
为了可视化,我想使用 MS Word 在这些文本部分中突出显示此类模式,并且我尝试使用查找/替换与我在脚本中使用的相同正则表达式但没有运气。
示例:我想找到模式work (?:\\w+ )?(?:\\w+ )? children
每个出现work (?:\\w+ )?(?:\\w+ )? children
work (?:\\w+ )?(?:\\w+ )? children
,即文本中最多允许在work
和children
之间work
任何两个其他词。
"[...] ability to work with children must be proven. Social Worker Job Essex Our Essex based client require permanent Social Workers to work in children and families teams. You should be a qualified Social Worker DIPSW, CQSW, CSS or equivalent [...]"
使用上述正则表达式对上述文本运行查找/替换不会返回任何匹配项(允许使用通配符)。
我应该使用哪个正则表达式? 任何帮助将不胜感激
在 Word 中,您需要使用两个通配符查找:
查找 = 工作 <[! ]@> 孩子们
对于有一个中间词的情况,和
查找 = 工作 <[! ]@> <[! ]@> 孩子们
对于有两个中间词的情况。
正如其他人已经指出的那样,这在 Microsoft Word 的正则表达式风格中是不可能的。 相反,您应该使用标准的正则表达式。 如果您使用集成到 Microsoft Word 中的称为 Multiple Find & Replace 的特殊工具,实际上可以在 MS Word 中使用标准正则表达式(请参阅http://www.translatortools.net/products/transtoolsplus/word-multiplefindreplace )。 此工具作为文档窗口右侧的窗格打开,其工作方式与“高级查找和替换”对话框类似。 但是,除了 Word 现有的搜索功能外,它还可以使用标准的正则表达式语法来搜索和替换 Word 文档中的任何文本。
在您的特定情况下,您的表达
工作 (?:\\w+ )?(?:\\w+ )?children
会正常工作。
多重查找和替换功能非常强大:您可以将任意数量的表达式(使用正则表达式或使用 Word 的标准搜索语法)添加到列表中,然后在文档中搜索所有这些表达式、替换所有内容、在列表中显示所有匹配项以及仅替换特定的匹配项,以及其他一些内容。
我为翻译人员和编辑人员创建了这个工具,但它非常适合 Word 中的任何高级搜索/替换操作,我相信您会发现它非常有用。
最好的问候,斯坦尼斯拉夫
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.