手机页面网站开发例子,58同城会员网站怎么做,开封景区网站建设项目方案,网站模板怎么上传昨天在给领导演示的时候发现需要替换文件#xff0c;结果发现同事那机器上只有UltraEdit我还不太会用#xff0c;淦#xff0c;没找到正则替换的入口#xff0c;结果不了了之。
后来回来在自己电脑上试了试#xff0c;发现自己想的正则也不太对#xff0c;索性现在总结一…昨天在给领导演示的时候发现需要替换文件结果发现同事那机器上只有UltraEdit我还不太会用淦没找到正则替换的入口结果不了了之。
后来回来在自己电脑上试了试发现自己想的正则也不太对索性现在总结一下最基础、通用、重要的符号剩下的就可以自由组合了就像调用小无相功的函数库模拟出少林寺72绝技一样。【以我现在的vscode上为准网上有的正则说得不错但是在vscode上文本查找替换没效果】 不同于简单的字符匹配由于可以组合表达正则表达式的威力就大了很多。 字符种类
.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字
\W匹配任意不是字母数字下划线汉字的字符\S匹配任意不是空白符的字符\D匹配任意非数字的字符
[xyz] 字符集合。匹配所包含的任意一个字符。例如 [abc] 可以匹配 plain 中的 a。 [^xyz] 负值字符集合。匹配未包含的任意字符。例如 [^abc] 可以匹配 plain 中的p、l、i、n。 [a-z] 字符范围。匹配指定范围内的任意字符。例如[a-z] 可以匹配 a 到 z 范围内的任意小写字母字符。 [^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如[^a-z] 可以匹配任何不在 a 到 z 范围内的任意字符。 查换行的东西
记得在一些软件上勾选“匹配新行”
比如查找
1
2000
在window的结尾符使用【1\r\n2000】没那个\r找不到……
utf8的结尾符使用【1\n2000】 数量控制后面还有懒惰模式控制
{n,m}重复n到m次
* 匹配前面的子表达式零次或多次。例如zo* 能匹配 z 以及 zoo。* 等价于{0,}。 匹配前面的子表达式一次或多次。例如zo 能匹配 zo 以及 zoo但不能匹配 z。 等价于 {1,}。 逻辑控制
或【|】
x|y 匹配 x 或 y。例如z|food 能匹配 z 或 food。(z|f)ood 则匹配 zood 或 food。 ^匹配字符串的开始$匹配字符串的结束 反义【^】
[^x]匹配除了x以外的任意字符[^aeiou]匹配除了aeiou这几个字母以外的任意字符
a[^]匹配用尖括号括起来的以a开头的字符串。 捕获【()】
类似于数学中的小括号的作用限定作用域并强制
捕获(exp)匹配exp,并捕获文本到自动命名的组里 懒惰【?】
贪婪在使整个表达式能得到匹配的前提下匹配尽可能多的字符,这是默认的。
懒惰匹配尽可能少的字符。
前面给出的限定符都可以被转化为懒惰匹配模式只要在它后面加上一个问号?。
*?重复任意次但尽可能少重复?重复1次或更多次但尽可能少重复??重复0次或1次但尽可能少重复{n,m}?重复n到m次但尽可能少重复{n,}?重复n次以上但尽可能少重复 边界
\b 匹配一个单词边界也就是指单词和空格间的位置。例如 er\b 可以匹配never 中的 er但不能匹配 verb 中的 er。 下面这个去了【^和$】就会扩大范围
^[0-9](.[0-9]{2})?$ #有两位小数的正实数
[0-9]\.[0-9]{2} #效果等同于这个不知道原作者怎么把.识别的 使用时需要注意转义的符号
由于正则匹配是以这些的组合进行的所以自己要匹配他们本身的时候需要注意。
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如n 匹配字符 n。\n 匹配一个换行符。序列 \\ 匹配 \ 而 \( 则匹配 (。
\ 转义符本身
(
)
{
}
.
*!
?
^
$
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性^ 也匹配 \n 或 \r 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性$ 也匹配 \n 或 \r 之前的位置。 * 匹配前面的子表达式零次或多次。例如zo* 能匹配 z 以及 zoo。* 等价于{0,}。 匹配前面的子表达式一次或多次。例如zo 能匹配 zo 以及 zoo但不能匹配 z。 等价于 {1,}。 ? 匹配前面的子表达式零次或一次。例如do(es)? 可以匹配 do 或 does 。? 等价于 {0,1}。
? 当该字符紧跟在任何一个其他限制符 (*, , ?, {n}, {n,}, {n,m}) 后面时匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如对于字符串 ooooo? 将匹配单个 o而 o 将匹配所有 o。 . 匹配除换行符\n、\r之外的任何单个字符。要匹配包括 \n 在内的任何字符请使用像(.|\n)的模式。
常用组合
.* # 匹配任意文本
.*?
[0-9] 后记
主要是查找内容和替换的有些查找前部之类的正则对我不太重要就没记减少记忆负担。 参考
正则表达式30分钟入门教程 | 菜鸟教程 (runoob.com)