Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 理解几个正则表达式_Regex - Fatal编程技术网

Regex 理解几个正则表达式

Regex 理解几个正则表达式,regex,Regex,我有几个我不懂的正则表达式 为什么[^dp]an与字符串'pan'不匹配?我以为正则表达式告诉你匹配任何包含'd'或'p',然后是'an'的子字符串。但它似乎不是这么说的 另外,我是否正确解释了:将[a-z]中的字符再匹配0次,直到达到“@”,然后将任何单词字符匹配1次或更多次,然后匹配除新行以外的任何字符,然后匹配“edu” 感谢您的帮助。[^表示不匹配集合中的字符。或者更准确地说,匹配除该集合中的字符外的任何字符(因此必须存在一个字符) 关于下一个,您基本上是正确的,尽管缺少了该正则表达式进

我有几个我不懂的正则表达式

为什么
[^dp]an
与字符串
'pan'
不匹配?我以为正则表达式告诉你匹配任何包含'd'或'p',然后是'an'的子字符串。但它似乎不是这么说的

另外,我是否正确解释了
:将[a-z]中的字符再匹配0次,直到达到“@”,然后将任何单词字符匹配1次或更多次,然后匹配除新行以外的任何字符,然后匹配“edu”


感谢您的帮助。

[^
表示不匹配集合中的字符。或者更准确地说,匹配除该集合中的字符外的任何字符(因此必须存在一个字符)

关于下一个,您基本上是正确的,尽管缺少了该正则表达式进行匹配所需的内容。
的含义实际上取决于,但它通常表示除换行符以外的任何字符。有时它可以包括换行符(例如,在特殊模式下的perl)

这可能对你有用,因为它分解了每一位的含义:

[dp]an将匹配丹或潘,但[^dp]an将匹配除丹和潘以外的任何东西,因此它将匹配兰、凡、谭等……您对第二个正则表达式的解释是正确的。