MS Word 正则表达式中的贪婪匹配?

MS Word 正则表达式中的贪婪匹配?

我需要清理 Word 中的一些表格,其中分号和后面的文本是多余的,例如

text1 ; text 2

上面是一个单元格的内容,我需要删除分号及其后的所有内容,直到单元格结束;不幸的是,文本 2 没有任何特定的模式。

我尝试使用 Word 的内置查找和替换功能使用正则表达式来做到这一点。

由于我的正则表达式所需的结尾是单元格的结尾,因此我无法匹配它,我尝试了任意字符的几种组合;?* ;* ;?@,但是全部停在最短匹配文本处,有没有办法让它匹配直到单元格结束?

答案1

这似乎有效:

;[!¤]{1,}

我使用了通用货币符号¤,你可以使用你确定的任何其他符号不是包含在分号后面的文本中(可能是分号本身)。

请注意:将花括号的第二个边界留空并不意味着无限字符串,我通过试验发现其范围限制为 255 个字符。

答案2

我需要删除分号及其后的所有内容

使用以下正则表达式:

;?{1,9999}^13
  • {n,m}匹配前一个字符或表达式的n至个出现次数m
  • ^13 匹配段落分隔符

来源使用正则表达式查找和替换文本(高级)

答案3

将表格复制到其他地方;将其转换为文本(布局/转换为文本) 并选择Paragraph delimiter

继续用 替换;*^13^9检查无误后Use wildcards即可。剪切此文本块。

选择原始表格上的所有文本并“仅文本”粘贴。

答案4

解决这个问题的最佳方法是将整个表格复制/粘贴到 Notepad++(或任何支持正则表达式的适当文本编辑器)中,然后进行编辑。

相关内容