欢迎各位兄弟 发布技术文章
这里的技术是共享的
正则表达式中的元字符是具有特殊含义的字符,它们不是用来表示字面意义上的自身,而是用来规定其前导字符或者影响正则表达式的匹配行为。
<?
php echo '\\';
运行结果:\
由此可见,在字符串中,两个反斜杠被解释为一个反斜杠,然后在作为正则表达式, \\ 则被正则表达式引擎解释为 \,所以在正则表达式中需要使用四个反斜杠。
也就是说,前两个反斜杠在字符串中被解释为一个反斜杠,后两个也被解释为一个反斜杠,这时解释完毕后变成两个反斜杠,再由正则表达式解释两个反斜杠,就又解释成了一个反斜杠,所以,在正则表达式中要匹配一个反斜杠时,需要四个反斜杠。
同理,要匹配点号时,需要在点号之前加上两个反斜杠( 好像不需要加两个反斜杠 ),否则将被正则表达式当作一个点号,一个点号在正则表达式中表示匹配任意字符了。
在做项目的过程中,使用正则表达式
preg_replace('/(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)/', '$1-$2-$3-$4-$5-$6', $mac);
咱们先转换为大写 把中间的 冒号 (:) 或 中短横 (-) 去掉 然后 1)判断是否 12位,,2)判断
https://c.runoob.com/front-end/854/
https://regexr.com/
/img/i.test(img.tagName)
08F8BC792F27
A87EEAACEB2B
98AF65DEB28C
这个mac 地址在 两个之间加中短横
替换目标: (\w\w)(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)
替换为: \1-\2-\3-\4-\5-\6
# 以空格分割成数组
看到这样两行代码
ERROR in ./src/styles.css (./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./src/styles.css)
Module build failed (from ./node_modules/postcss-loader/src/index.js):
Error: Failed to find '@angular/material/_theming'
in [
C:\Users\Administrator\Desktop\angular-meiwen\src
]
at resolveModule.catch.catch (C:\Users\Administrator\Desktop\angular-meiwen\node_modules\postcss-import\lib\resolve-id.js:35:13)
正则表达式匹配中,(.\*)和(.\*?)匹配区别?
它们的差别其实就是 ? 的差别,加上 ? 则为非贪婪匹配则:
(.*) 是贪婪匹配,会尽可能的往后匹配更多
(.*?) 非贪婪匹配,满足的情况下尽可能少的匹配
来自 http://ke.magedu.com/article/114
PS:学了正则表达式那么久,也没做出什么像样的模式出来,早上一觉醒来突发奇想,下定决心要证明一下咱正则可不是白学的——于是选择了最常见的日期匹配……
简单说是贪婪匹配与非贪婪匹配的区别。
Ultrapico Expresso是我工作中经常使用的一个非常强大的正则表达式构建、测试以及代码生成工具。
-v, --invert-match 排除
Invert the sense of matching, to select non-matching lines.
# -P, --perl-regexp #将模式解释为Perl正则表达式。
Interpret PATTERN as a Perl regular expression.
[root@localhost ~]# cat aa.txt
11.jpg.php
22.jpg
33.jpg.aa.php
44.jpg.bb
55.php
66
[root@localhost ~]# grep -P '(?!.*jpg)php' aa.txt