有时候匹配上的词并不想要完全替换掉,今天查了一下发现可以用\1 \2这种方式来指代匹配字符串中的第一个或者第二个括号,就相当于保留下这部分内容。
例子比较笨拙,但是能说明这种用法。
例子原句:
Some words.中文翻译。
为了格式好看,在英文句号后加一空格
Find what: (.)([! ]) //匹配.和后面紧挨着一个非空白字符
Replace with: . \2 //注意中间有空格,\2表示引用第二个括号匹配的内容
一些常用的正则表达式(已含所有的 MS Word 可用的通配符)
含义 | GNU grep | GNU Emacs | Perl | MS Word |
---|---|---|---|---|
含义 | GNU grep | GNU Emacs | Perl | MS Word |
任何单个字符 | . | . | . | ? |
符合其中的任一字符 | [...] | [...] | [...] | [...] |
符合除此之外的任一字符 | [^...] | [^...] | [^...] | [!...] |
子表达式 | \(re\) | \(re\) | (re) | (re) |
表达式重复多次 | re\{...\} | re\{...\} | re{...} | re{...} |
表达式出现0或1次 | re\? | re? | re? | 无 |
表达式出现0或多次 | re* | re* | re* | 无 |
表达式出现1或多次 | re\+ | re+ | re+ | re@ |
表达式出现0或1次(lazy mode) | 无 | re?? | re?? | 无 |
表达式出现0或多次(lazy mode) | 无 | re*? | re*? | 无 |
表达式出现1或多次(lazy mode) | 无 | re+? | re+? | 无 |
单词起始 | \< | \< | 无 | < |
单词结尾 | \> | \> | 无 | > |
单词边界(起始或结尾) | \b | \b | \b | 无 |
非单词边界 | \B | \B | \B | 无 |
任意字符串 | .* | .* | .* | * |
行首 | ^ | ^ | ^ | 无 |
行末 | $ | $ | $ | 无 |
换行符 | \n | C-q C-j | \n | ^13 |
”或“ | re\|re | re\|re | re|re | 无 |
引用上次找到的内容 | 不知道 | \& | 不知道 | ^& |
引用被括号捕获的内容 | \digit | \digit | \digit | \digit |
re 代表一个正则表达式 (RegExp)
MS Word里多次匹配,最少是一次,没有0次。
\digit 指 \后面加数字 如 \1 \2