4

我想编写允许一些特殊字符的正则表达式,#-.它应该至少包含一个字母。我也想了解以下内容:

/(?=^[A-Z0-9. '-]{1,45}$)/i

在这个正则表达式中是什么意思?=^?什么是正则表达式中的子表达式?

4

2 回答 2

8

(?=)是向前看,它在字符串中向前看以查看它是否匹配而不实际捕获它

^表示它在输入的开头匹配(例如,字符串a test^test匹配,因为它不以“test”开头,即使它包含它)

总的来说,你的表达是说它必须以你的字符组中存在的 1-45 个项目^开始和$结束(不区分大小写)。在这种情况下它在前瞻内的事实只是意味着它不会捕获任何东西(零长度匹配)。{1,45}[A-Z0-9. '-]/i

于 2013-10-07T15:38:15.483 回答
6

?=是一个积极的前瞻

阅读更多关于正则表达式

于 2013-10-07T15:37:54.290 回答