从哪里开始学习正则表达式?

时间:2013-06-03 12:48:45

标签: php regex

我是新手,我想知道从哪里开始学习正则表达式?
我知道这是一个很大的问题,但我真的想知道这一点 非常感谢链接或建设性的答案。

2 个答案:

答案 0 :(得分:0)

您的问题将被关闭,因为它不是一个真正的问题,但您会在Internet和StackOverflow上找到很多关于正则表达式(缩写为regex或regexp)的文档,但这只是一个开头。

以下信息来自Wikipedia ... http://regexone.com将帮助您通过课程学习正则表达式。


元字符:

即可。匹配任何单个字符
例如a.c匹配“abc”等,但[a.c]仅匹配“a”,“。”或“c”。

[]匹配括号中包含的单个字符
例如,[abc]匹配“a”,“b”或“c”。 [a-z]指定匹配从“a”到“z”的任何小写字母的范围。这些形式可以混合使用:[abcx-z]匹配“a”,“b”,“c”,“x”,“y”或“z”,[a-cx-z]也是如此。

[^]匹配括号中未包含的单个字符
例如,[^ abc]匹配“a”,“b”或“c”以外的任何字符。 [^ a-z]匹配从“a”到“z”不是小写字母的任何单个字符。

^匹配字符串中的起始位置。在基于行的工具中,它匹配任何行的起始位置。

$匹配字符串的结束位置或字符串结尾换行符之前的位置。在基于行的工具中,它匹配任何行的结束位置。

()定义标记的子表达式。括号内匹配的字符串可以稍后调用(参见下一个条目,\ n)。

\ n匹配第n个标记的子表达式匹配,其中n是1到9之间的数字。

*将前一个元素与零次或多次匹配
例如,ab * c匹配“ac”,“abc”,“abbbc”等。[xyz] *匹配“”,“x”,“y”,“z”,“zx”,“zyx”,“ xyzzy“,等等。 (ab)*匹配“”,“ab”,“abab”,“ababab”等。

{m,n}匹配前面的元素至少为m且不超过n次
例如,{3,5}仅匹配“aaa”,“aaaa”和“aaaaa”。在一些旧的正则表达式实例中找不到。 BRE模式需要{m,n}。


示例:

  • .at 匹配任何以“at”结尾的三个字符的字符串,包括“hat”,“cat”和“bat”。
  • [hc] at 匹配“hat”和“cat”。
  • [^ b] at 匹配.at匹配的所有字符串,“bat”除外。
  • [^ hc] at 匹配除“hat”和“cat”之外的.at匹配的所有字符串。
  • ^ [hc] at 匹配“hat”和“cat”,但仅限于字符串或行的开头。
  • [hc] $ 匹配“hat”和“cat”,但仅限于字符串或行的末尾。
  • [。] 匹配由“[”和“]”包围的任何单个字符,因为括号被转义,例如:“[a]”和“[b]”。

答案 1 :(得分:0)

所有主要语言都支持与Perl兼容的语法,只有很小的变化,几乎总是在如何计算空格和行尾字符。作为一般规则,您可以参考Perl语法并在jsfiddle.net中尝试。

事实上,我认为从Perl来源学习可能会为您提供最广泛的可能用途和怪癖,这些用法和怪癖通常适用于各种语言。