2008年11月8日星期六

Perl : 正则注记

学习perl总结
  • (?=<RE>), look ahead匹配但不吃掉
  • (?!<RE>),下一组文本不match时,才匹配
  • (?<=<RE>), lood behind, also (?<!<RE>)
$a = " cat housecat catch crazycats "; 

$a =~ s/ (?<= \s ) cat (?= \s ) / CAT /g ; # 不变 

$a =~ s/ (?
  • (?xims-xims: <RE>)
/ Answer: ((?i) yes ) / ; # 'Answer: yes', '…YES', '…Yes', etc

/ Answer: ((? -i ) yes ) /i ; # 'answer: yes' only, not "…YES"
  • (?:<RE>),使用(…)但不计入反向引用中
  • (?#)comment, replaced by m/…/x now.
  • ?RE? Match only once between reset call.
关于Perl里面正则规范
其中介绍下面这些的部分不错:
(?#text)
(?:pattern)
(?imsx:pattern)
(?=pattern)
(?!pattern)
(?<=pattern)
(? (?{code})
(?>pattern)
(!<=pattern)
(!=pattern)
(?(condition)yes-pattern|no-pattern)
(?(condition)yes-pattern)
(?imsx)
(?-imsx)
与换行有关(\n)的修饰符
/s 使得.可以匹配任何字符,包括换行符。例如:/Barney.*Fred/s
/m 将字符串视作多行,允许根据字符串内部的换行符进行匹配。

正则式的描述符介绍:The Effective Perler-Know the difference between regex and match operator flags

没有评论:

发表评论