正则表达式的部分替换
有时候匹配上的词并不想要完全替换掉,今天查了一下发现可以用\1 \2这种方式来指代匹配字符串中的第一个或者第二个括号,就相当于保留下这部分内容。
例子比较笨拙,但是能说明这种用法。
例子原句:
Some words.中文翻译。
为了格式好看,在英文句号后加一空格
Find what: (.)([! ]) //匹配.和后面紧挨着一个非空白字符
Replace with: . \2 //注意中间有空格,\2表示引用第二个括号匹配的内容
一些常用的正则表达式(已含所有的 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 |
| 含义 | GNU grep | GNU Emacs | Perl | MS Word |
re 代表一个正则表达式 (RegExp)
MS Word里多次匹配,最少是一次,没有0次。
\digit 指 \后面加数字 如 \1 \2
浙公网安备 33010602011771号