(?=。* [^ a-zA-Z])是什么意思
我是正则表达式的初学者而没有得到它的意思。
是这样的,点(。)表示任何字符,因此.*
表示任意次数的任何字符,[^a-zA-z]
除了a-z和A-Z之外的任何一个字符{{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
。这条线将被找到并显示出来。