将正则表达式量词合并到括号中

Incorporate regex quantifier into brackets

我正在尝试合并以下负先行正则表达式

^(?!\*\*) 

进入以下正则表达式

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

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

I don't want two consecutive asterisk (**) to appear anywhere in the file path

只需在您的正则表达式之前添加这个否定前瞻:

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

(?!.*?\*\*)将避免匹配输入。

您可以在第二个模式的开头将其添加为否定前瞻:

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

demo