我试图搜索方括号内的 1 到 99 之间的任何正整数,例如[1]或者 [24]。因此基本上每个实例:打开方括号,从 1 到 99 的数字,关闭方括号。或者有时是数字范围/对,例如[26-29]甚至[30,31]。我必须将所有方括号替换为普通圆括号;例如,[1]将被替换为(1), [42]将被替换为(42), ETC。
我已经看过[1-9]{1,}
了 [1-9]{1,99}
另外我必须改变每一个实例我到我们因为我写了一篇30页的文章,我的一个同事突然加入来帮忙工作,所以......
显然根据这个文档,有以下方法:
- <、>:位置锚点
但不知为何,我就是无法解决这个问题。任何帮助我都非常感谢,因为我必须在今天之前完成它。
笔记:Microsoft Word for Mac 版本 15.12.3
答案1
进入“查找和替换”,单击“更多>>”,然后单击“使用通配符”。
(但你已经知道了,对吧?)
要按字面意思搜索通配符(模式匹配)语法中具有特殊含义的字符,请在该字符前加上反斜杠 (
\
)。因此,要在文本中搜索(文字)方括号,请使用\[
和\]
。零是有效数字,因此必须使用
[0-9]
而不是[1-9]
。- 如果您的文档中包含英语以外的语言,尤其是罗马字母以外的字母(例如阿拉伯语或中文),
[0-9]
可能匹配那些外文字母中的数字。(或者甚至字母以及那些外文字母中的其他符号。)它 可能使用更安全[0123456789]
。
- 如果您的文档中包含英语以外的语言,尤其是罗马字母以外的字母(例如阿拉伯语或中文),
因此,要匹配任何整数(非负整数),请使用
[0-9]{1,}
或[0-9]@
。要匹配 0 至 99 之间的任何整数,请使用
[0-9]{1,2}
。- 这将匹配
0
。如果 不是 匹配0
对你来说很重要,请这么说。 - 这还将匹配以零开头的两位数(即,,,, ...
01
)。而且,就此而言, 。再次说明这是否是一个严重的问题。02
03
09
00
- 这将匹配
使用括号(
(
...)
)来分隔捕获组或表达式。
因此,简单搜索方括号中的一位或两位数字,使用\[[0-9]{1,2}\]
。
但是,如果你想要执行“查找和替换”,并替换[42]
为,那么查找并替换为。这有点令人困惑。在“查找内容”字符串中(为清晰起见已展开):(42)
\[([0-9]{1,2})\]
(\1)
\[ ( [0-9]{1,2} ) \]
↑ ↑
括号(突出显示)界定了一个捕获组。在“替换为”字符串中:
( \1 )
括号是要插入的文字括号字符,\1
表示“获取第一个捕获组匹配的内容(即数字,不带括号),并将其插入到这里”。
要对数字范围执行相同操作,只需找到\[[0-9]{1,2}-[0-9]{1,2}\]
(然后再次替换为 (\1)
。对于以逗号分隔的数字对也是如此:
\[[0-9]{1,2},[0-9]{1,2}\]
。
-
为了给出“查找和替换”中括号的另一个示例(希望更清楚),假设您有文本
Jack loves cats.
并且你“发现”
Jack loves (*s).
和“替换为”
(But Jill hates \1.)
结果是
(But Jill hates cats.)
至于问题的第二部分:改变每一个我到 我们,搜索
<I>
并全部替换为 We
。除非您的整个文档都是以标题大小写编写的,否则请进行第二遍搜索,搜索<We>
(标题大小写),并将除 we
句子第一个单词之外的所有单词替换为 (小写)。
实际上,搜索<I>
并全部替换为 we
(小写),然后再搜索<we>
(小写),并We
在需要替换的地方用(标题大小写) 替换,这样工作量可能会更少。是句子的第一个单词。可以使用通配符自动执行此操作,如下所示
^013we> ⇒ ^pWe
和
([.\!?] @)we> ⇒ \1We
但我还没有彻底测试过。