我是新手,我想知道从哪里开始学习正则表达式?
我知道这是一个很大的问题,但我真的很想知道这一点。
非常感谢您的链接或建设性的答案。
2 回答
您的问题将被关闭,因为这不是一个真正的问题,但您会在 Internet 和 StackOverflow 上找到很多关于正则表达式(缩写为 regex 或 regexp)的文档,但这里是一个开始。
以下信息来自维基百科... http://regexone.com将帮助您通过课程学习正则表达式。
元字符:
. 匹配任何单个字符
例如 ac 匹配“abc”等,但 [ac] 仅匹配“a”、“.”或“c”。
[ ] 匹配括号内的单个字符
例如,[abc] 匹配“a”、“b”或“c”。[az] 指定匹配从“a”到“z”的任何小写字母的范围。这些形式可以混合使用:[abcx-z] 匹配“a”、“b”、“c”、“x”、“y”或“z”,[a-cx-z] 也是如此。
[^ ] 匹配未包含在方括号内的单个字符
例如,[^abc] 匹配除“a”、“b”或“c”之外的任何字符。[^az] 匹配从“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 次
例如,a{3,5} 仅匹配“aaa”、“aaaa”和“aaaaa”。这在一些较旧的正则表达式实例中找不到。BRE 模式需要 {m,n}。
例子:
- .at匹配任何以“at”结尾的三个字符的字符串,包括“hat”、“cat”和“bat”。
- [hc]at匹配“帽子”和“猫”。
- [^b]at匹配所有由 .at 匹配的字符串,除了 "bat"。
- [^hc]at匹配除 "hat" 和 "cat" 之外的所有由 .at 匹配的字符串。
- ^[hc]at匹配 "hat" 和 "cat",但只匹配字符串或行的开头。
- [hc]at$匹配 "hat" 和 "cat",但仅在字符串或行的末尾。
- [.]匹配由“[”和“]”包围的任何单个字符,因为括号被转义,例如:“[a]”和“[b]”。
所有主要语言都支持与 Perl 兼容的语法,只有微小的变化,几乎总是在诸如如何计算空格和行尾字符之类的事情上。作为一般规则,您可以参考 Perl 语法并在 jsfiddle.net 中尝试。
事实上,我想说的是,从 Perl 资源中学习可能会为您提供最广泛的可能用途和通常适用于各种语言的怪癖。