正则表达式
正则表达式
🌳basic
1 | /a.c/ -> aac、abc、acc、adc |
🌳常用
reference
1 | 汉字(字符) [\u4e00-\u9fa5] |
🌳(pattern)
匹配pattern并获取这一匹配。所获取的匹配可以
- 从产生的Matches集合得到,
- 在VBScript中使用SubMatches集合,
- 在JScript中则使用$0…$9属性。
要匹配圆括号字符,请使用“(“或”)"。
🌳正向反向匹配
Windows :Windows 3.1、Windows 95 、Windows 98 和 Windows NT
🌳(?:pattern)
匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)"来组合一个模式的各个部分是很有用。
例如"industr(?:y|ies)"就是一个比"industry|industries"更简略的表达式。
1 | Windows (?:95 |98 |NT ) -> Windows 95 Windows 98 Windows NT |
🌳(?=pattern)
正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
例如,“Windows(?=95|98|NT|2000)“能匹配"Windows2000"中的"Windows”,但不能匹配"Windows3.1"中的"Windows"。
预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
Windows (?=95 |98 |NT ) -> Windows 95 Windows 98 Windows NT
🌳(?!pattern)
正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
例如“Windows(?!95|98|NT|2000)“能匹配"Windows3.1"中的"Windows”,但不能匹配"Windows2000"中的"Windows"。
预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
Windows (?!95 |98 |NT ) -> Windows :Windows 3.1
🌳(?<=pattern)
反向肯定预查,与正向肯定预查类拟,只是方向相反。
例如,“(?<=95|98|NT|2000)Windows"能匹配"2000Windows"中的"Windows",但不能匹配"3.1Windows"中的"Windows"。
🌳(?<!pattern)
反向否定预查,与正向否定预查类拟,只是方向相反。
例如“(?<!95|98|NT|2000)Windows"能匹配"3.1Windows"中的"Windows",但不能匹配"2000Windows"中的"Windows"。
Here is a footnote reference,[^1] and another.[^longnote]
🌳vim 相关
reference
Examples
🌳vim 每 5行 合并为一行
1 | nomarl 模式 |
🌳vim 匹配 #### 数字数字. 并前后插入换行符
:%s/#### \d\d. /\r\r&\r\r\/
🌳vim 每10行插入 3行空行
1 | normal 模式下 yy辅助一行空行 |
🌳Endnotes
[^1]: Here is the footnote.
[^longnote]: Here’s one with multiple blocks.