0

我有一个我写的 python 脚本的输出,它包含从一个大数据集中提取的部分文本,在通过正则表达式匹配一些模式之后。

为了可视化,我想使用 MS Word 在文本的这些部分中突出显示这些模式,并且我尝试使用我在脚本中使用的相同正则表达式使用查找/替换,但没有运气。

示例:我想找到 pattern 的每次出现,即在文本work (?:\w+ )?(?:\w+ )? children中最多允许workand之间的任何其他两个单词children

"[...] 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 [...]"

使用上述正则表达式对上述文本运行查找/替换不会返回任何匹配项(允许使用通配符)。

我应该使用哪个正则表达式?任何帮助将不胜感激

4

2 回答 2

0

正如其他人已经指出的那样,这在 Microsoft Word 的正则表达式风格中是不可能的。相反,您应该使用标准正则表达式。如果您使用集成到 Microsoft Word 中的名为 Multiple Find & Replace 的特殊工具,实际上可以在 MS Word 中使用标准正则表达式(请参阅http://www.translatortools.net/products/transtoolsplus/word-multiplefindreplace)。此工具作为文档窗口右侧的窗格打开,其工作方式与“高级查找和替换”对话框类似。但是,除了 Word 现有的搜索功能外,它还可以使用标准正则表达式语法来搜索和替换 Word 文档中的任何文本。

在您的特定情况下,您的表达

工作 (?:\w+ )?(?:\w+ )?儿童

会正常工作。

多重查找和替换功能非常强大:您可以将任意数量的表达式(使用正则表达式或使用 Word 的标准搜索语法)添加到列表中,然后在文档中搜索所有这些表达式、替换所有内容、在列表中显示所有匹配项以及仅替换特定的匹配项,以及更多内容。

我为翻译和编辑创建了这个工具,但它非常适合 Word 中的任何高级搜索/替换操作,我相信您会发现它非常有用。

最好的问候, 斯坦尼斯拉夫

于 2020-03-09T14:11:32.883 回答
0

在 Word 中,您需要使用两个通配符Find:

查找=工作<[!]@> 孩子们

对于有一个中间词的情况,和

查找=工作<[!]@> <[! ]@> 孩子们

对于有两个中间词的情况。

于 2018-04-05T21:11:28.397 回答