正则的应用原创
正则的应用
检验文本内容
- 在JavaScript中没有字符串边界限制\A 和 \z
- 只有文本的边界限制^,$,默认为单行匹配
- 不可使用多行模式,会改变^,$的行为
- /^\d{4}-\d{2}-\d{2}$/.test(“2020-09-06”)
- 在js中进行文本校验时不要设置全局模式
- 在全局模式下,正则会将本次匹配到的最后一个元素的下标记住,下次再测试会从此处开始找。因此如果在全局模式下测试同一段文本可能第一次能找到但是第二次找不到。
- /\d{4}-\d{2}/.test("2022-06")
提取文本内容
- 在JavaScript中要提取所有匹配的内容,必须使用全局模式
- "2022-06".match(/\d{4}-\d{2}/g)
- 在匹配中文字符时,使用u模式
- "哈哈".match(/\u{1D360}/ug)
替换文本内容
- 在JavaScript中替换和提取类似,需要指定g
- "06-2022".replace(/(\d{2})-(\d{4})/g,"$2年$1月")
切割文本内容
- 在JavaScript中切割内容时,可传入两个参数,第一个为正则用于匹配内容,第二个用于限制数组中内容的个数
- "apple,pear;tea".split(/\w+/)
- "apple;pear,tea".split(/\w+/,2)
- 在python中第二个参数代表的是切割的次数
案例
- 替换网页邮箱地址中#为@
- “xxx#163.com”
- "xxx#163.com".replace(/(\w+)#(?.+)/,$1@$2) | replace(/#/,'@'')