欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

正则表达式特殊字符 有大用 有大大用 有大大大用

shiping1 的头像

(?=http|/) 限制必须以http或/开头
(?![~#]|ftp) 限制不以~、#或ftp开头

(?=exp) 匹配exp前面的位置 
(?!exp) 匹配后面跟的不是exp的位置
 
(?!abc|kkk/fff) 匹配后面跟的不是以abc开头 或者 不是以 kkk/fff开头

来看一下这个表达式:(?<!^)(?=[A-Z])

前面说到过 (?!) 表示缝隙后面不允许出现的东西,而 (?<!) 表示缝隙前不允许出现的东西。
(?=) 表示缝隙后允许出现的东西,(?<=) 表示缝隙前允许出现的东西。

这个表达式在拆分时,根据零宽度匹配缝隙进行拆分的,这个缝隙必须满足以下条件:

(?<!^) 表示缝隙不允许前不能是行开始,即缝隙不能出现在首字母的前面。
(?=[A-Z]) 表示缝隙后面允许出现 A-Z 的大写字母。

 

 

^(/abc|/bcd).*$表示匹配以/abc或者/bcd开头的字符串

不包含某字符  可以使用  [^X]
当使用 [^XYZ] 时 表示的是不包含 X或Y或Z

(?!xyz).{3}
匹配不是xyz且长度为3的字符串

 

 

注释 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,那么 $ 还匹配 \n 或 \r 前面的位置。若要匹配 $ 字符本身,请使用 \$。

( ) 标记子表达式的开始和结束。可以捕获子表达式以供以后使用。若要匹配这两个字符,请使用 \( 和 \)。

* 零次或多次匹配前面的字符或子表达式。若要匹配 * 字符,请使用 \*。

+ 一次或多次匹配前面的字符或子表达式。若要匹配 + 字符,请使用 \+。

. 匹配除换行符 \n 之外的任何单个字符。若要匹配 .,请使用 \。 [ ] 标记中括号表达式的开始。若要匹配这些字符,请使用 \[ 和 \]。

? 零次或一次匹配前面的字符或子表达式,或指示“非贪心”限定符。若要匹配 ? 字符,请使用 \?。

\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,字符 n 匹配字符 n。 匹配换行符。序列 \\ 匹配 \,序列 \( 匹配 (。

/ 表示文本正则表达式的开始或结束。若要匹配 / 字符,请使用 \/。

^ 匹配输入字符串开始处的位置,但在中括号表达式中使用的情况除外,在那种情况下它对字符集求反。若要匹配 ^ 字符本身,请使用 \^。

{ } 标记限定符表达式的开始。若要匹配这些字符,请使用 \{ 和 \}。

| 指出在两个项之间进行选择。若要匹配 | ,请使用 \|
 
 
 
 
 
 
  正则表达式中的特殊符号及正则表达式的几种方法(replace,test,search) 收藏
一 正则表达式的正文。
正则表达式中使用了特殊符号。下面我就将各种符号以及其意义和用法简单的介绍一下(说明:"X以上包括X"):

\ 表示在其后的文字是特殊符号。例:"n"和"n"是一致的。"\n"和换行符是一致的。
^ 和输入的开始一致。
$ 和输入的结尾一致。
* 与此符号之前的文字0次以上相同的话,两者一致。例:"zo*"和"zoo","z"都一致。
+ 与此符号之前的文字1次以上相同的话,两者一致。例:"zo*"和"zoo"一致,但和"z"不一致。
? 与此符号之前的文字0次或1次相同的话,两者一致。例:"a?ve?"和"never"的"ve"一致。
. 与除了换行符的所有单一文字一致。
(正则表达式) 以所指定的表达式寻找一致文字。如果找到了,储存下来。一致的部分可以从
Match方法获得的阵列中找到。
x|y x和y的任意一方相同都会被认为一致。例:"(z|f)ood"和"zood","food"都一致。
{n} n是0以上的整数。与其前的文字n次相同的话,两者一致。例:"o{2}"和"Bob"中的"o"不一
致,与"foooood"中的前两个"o"一致。
{n,} n是0以上的整数。与其之前的文字至少n次相同才一致。
{n,m} 两者整数。n至m范围的次数一致。
[xyz] 与中括号中的文字任意一个相同都被认为一致。
[^xyz] 与上面的相反。
[a-z] 文字的范围,从"a"到"z"的文字都被认为一致。
[^a-z] 与上面的相反。
\b 表示单词的末尾。例:"er\b"和"never"的"er"一致,但和"verb"的"er"不一致。
\B 表示非单词的末尾。
\d 表示数字。
\D 表示非数字。
\s 表示空格。
\S 表示非空格。
\w 表示所有字母数字。
\W 表示非所有字母数字。

 
//修饰符
  i   (忽略大小写)   
  g   (全文查找出现的所有   pattern)   
  gi   (全文查找、忽略大小写)
  U   表示非贪婪匹配 ,匹配一次就中止了   (U好像是贪婪匹配) (可以100%的肯定 U的贪婪匹配)
    m   将一个字符串视为多行   ^ 定位换行符之后的内容, $定位换行符之前的内容

php <wbr>正则中的"i,m,s,x,e"分别表示什么当设定了此修正符,“行起始”和“行结束”

  s 表示 使用 小圆点匹配任意字符 ,包括  换行符 (\n)
\num num应该被赋予一个正数。与已经储存的部分比较。例:"(.)\1"和任意的两个连续的相同
文字一致。





/<a href=[\"\']?([-=\w\.\/\?]+)[\"\']?>[\[\(<]?上一页[\]\)>]?<\/a>/igm;


 好像 开始和结束可以用竖线   |   它与斜线   /  是相同的作用
 
 
 #里面的东西不要加反斜杠
  preg_match("#<a (.*)>(.*)</a>#imU",
   |里面的东西不要加反斜杠
   preg_match("|<a (.*)>(.*)</a>|imU",
  |里面的东西要加反斜杠
   preg_match("/<a (.*)>(.*)<\/a>#imU",
 

普通分类: