欢迎各位兄弟 发布技术文章
这里的技术是共享的
<?
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
前言
近期在做一个web应用jsonaz.com,该应用可以将JSON转为PHP数组,或将PHP数组转为JSON。需要在后台对用户提交的PHP代码进行校验,检验用户是否输入了PHP自带的函数,例如:array(1,2,3)是合法的,date(‘Y-m-d’)则是不合法的。因此,需要用正则表达式匹配非array开始的字符串。
正向预查之正向不匹配
先举个例子,加粗代表匹配正则:
不匹配array,(?!a)(?!r)(?!r)(?!a)(?!y),json | array | time
最终采用的正则,适用于PHP函数preg_match:
$pattern = '/^(?!a)(?!r)(?!r)(?!a)(?!y)[A-Za-z_]+\s*\(.*\)$/';
$time = 'time()'; // 匹配
$date = 'date(\'Y-m-d\')'; // 匹配
$array = 'array(1,2,3)'; // 不匹配
---------------------
作者:慕 来
来源:CSDN