Regex (=.[^a-zA-Z])是什么意思

Regex (=.[^a-zA-Z])是什么意思,regex,Regex,(=.[^a-zA-Z])是什么意思 我是正则表达式的初学者,不明白它的意思 它是否像,点(.)表示任意字符,所以*表示任意字符,任意次数,[^a-zA-z]除a-z和a-z之外的任意一个字符。 哪根线和它匹配 谢谢 这是一个积极的前瞻性断言 这意味着至少有一个符号不在该点右侧a-ZA-Z 例如: $ echo 12abc | grep -P '2(?=.*[^a-zA-Z])' $ echo 12abc. | grep -P '2(?=.*[^a-zA-Z])' 12abc. 在第一行中,在

(=.[^a-zA-Z])是什么意思

我是正则表达式的初学者,不明白它的意思

它是否像,点(.)表示任意字符,所以
*
表示任意字符,任意次数,
[^a-zA-z]
除a-z和a-z之外的任意一个字符。 哪根线和它匹配

谢谢


这是一个积极的前瞻性断言

这意味着至少有一个符号不在该点右侧
a-ZA-Z

例如:

$ echo 12abc | grep -P '2(?=.*[^a-zA-Z])'
$ echo 12abc. | grep -P '2(?=.*[^a-zA-Z])'
12abc.
在第一行中,在
2
之后没有
而不是a-zA-Z
。而该行将不会显示


在第二行,我在末尾加了一个点。现在在
2
之后有一个
而不是a-zA-Z
。将找到并显示该行。

这是积极的前瞻性断言

这意味着至少有一个符号不在该点右侧
a-ZA-Z

例如:

$ echo 12abc | grep -P '2(?=.*[^a-zA-Z])'
$ echo 12abc. | grep -P '2(?=.*[^a-zA-Z])'
12abc.
在第一行中,在
2
之后没有
而不是a-zA-Z
。而该行将不会显示


在第二行,我在末尾加了一个点。现在在
2
之后有一个
而不是a-zA-Z
。当你不懂这样一个正则表达式时,你可以去一个在线工具,比如,粘贴你的正则表达式,然后在正则表达式的每一部分上悬停,以获得一个工具提示来解释它的作用。另请参见:我发誓,为了解决这类问题,你可以玩一玩。还有很多选择,包括一些基于网络的选择。Regex Coach(除其他外)对Regex进行了描述;这里说这是一个“零宽度正向前瞻断言”,然后你可以用它来找出它在上的含义。当你不理解这样一个正则表达式时,去一个在线工具,比如,粘贴你的正则表达式,然后将鼠标悬停在reg-ex的每个部分上,查看工具提示说明它的功能。另请参见:我发誓,我会玩一玩来解决这类问题。还有很多选择,包括一些基于网络的选择。Regex Coach(除其他外)对Regex进行了描述;这里说这是一个“零宽度正向前瞻断言”,然后您可以使用它来了解这在上的含义。