(?=。* [^ a-zA-Z])是什么意思

时间:2012-07-27 08:54:30

标签: regex

(?=。* [^ a-zA-Z])是什么意思

我是正则表达式的初学者而没有得到它的意思。

是这样的,点(。)表示任何字符,因此.*表示任意次数的任何字符,[^a-zA-z]除了a-z和A-Z之外的任何一个字符{{1}}。 什么字符串会匹配它?

谢谢,

普尼特

1 个答案:

答案 0 :(得分:7)

这是积极向前看的断言。

这意味着至少有一个符号从该点开始不是a-ZA-Z

示例:

$ echo 12abc | grep -P '2(?=.*[^a-zA-Z])'
$ echo 12abc. | grep -P '2(?=.*[^a-zA-Z])'
12abc.

在第一行中not a-zA-Z之后没有2。并且不会显示该行。

在第二行我添加了指向结尾的点。现在not a-zA-Z之后有一个2。这条线将被找到并显示出来。