将正则表达式量词纳入括号

时间:2015-05-26 21:49:26

标签: javascript regex regex-negation

我正在尝试合并以下否定前瞻性正则表达式

^(?!\*\*) 

进入以下正则表达式

^([a-z]:)?(\\[^<>:"/\\|?;,$=%@~]+)+\\?$

基本上,我不希望两个连续的星号(**)出现在文件路径的任何位置。如何修改块[^<>:"/\\|?;,$=%@~]以包含此条件?我尝试使用转义字符,但无济于事。

2 个答案:

答案 0 :(得分:2)

您可以在第二个模式的开头将其添加为负面预测:

^(?!.*\*\*)([a-z]:)?(\\[^<>:"/\\|?;,$=%@~]+)+\\?$

请参阅demo

答案 1 :(得分:1)

  

我不希望两个连续的星号(**)出现在文件路径的任何位置

只需在正则表达式前加上这个否定前瞻:

/^(?!.*?\*\*)([a-z]:)?(\\[^<>:"/\\|?;,$=%@~]+)+\\?$/mg
如果输入中有两个(?!.*?\*\*)^之后

*将避免匹配输入。