我可以知道?=
在正则表达式中的含义吗?例如,它在这个表达式中的意义是什么:
(?=.*\d).
答案 0 :(得分:58)
?=
是一个积极的前瞻,一种zero-width assertion。它的含义是所捕获的匹配必须跟在括号内的任何内容,但该部分不会被捕获。
您的示例意味着匹配需要后跟零个或多个字符,然后是一个数字(但不再捕获该部分)。
答案 1 :(得分:8)
(?= pattern)是零宽度正向前瞻断言。
例如,/\w+(?=\t)/
匹配单词后跟标签,而不包括$&
中的标签。
答案 2 :(得分:0)
下面的表达式将找到文件名在扩展名之前设置的最后一个数字(不包括点(。))。
'\d+(?=\.\w+$)'
file4.txt 将匹配 4 。
file123.txt 将匹配 123 。
demo.3.js 将匹配 3 ,依此类推。
答案 3 :(得分:0)
如果您想屏蔽信用卡号(执行号)的后4位数字/字符,可以在正则表达式中使用?=
。
cc = "1234-5678"
cc.replace(/.(?=....)/g, '#');
cc = #####5678