有没有办法给正则表达式添加正则表达式异常?
示例:
(regular expression/regular expression to ignore)
我有以下正则表达式:
\W
但希望它忽略引号内的字符串(我将使用的正则表达式是:"(.*?)"
)。但我不知道如何向 \W
正则表达式添加例外。
我想要这样的东西:
\W(ignore->"(.*?)")
有什么想法吗?任何帮助将不胜感激。
答案 0 :(得分:0)
编辑:您的问题询问了 \W
(非单词字符),但您可能打算在这些问题上进行拆分。您似乎打算匹配这些内容,因此我在答案中将大写的 \W
更改为小写的 \w
。
您可能正在寻找这样的东西:(?:"[^"]*?"|\w)+
这个想法是区别对待引用的子字符串。这是它的工作原理:
(?:
"[^"]*?"|\w )+
内容在哪里。 ..[^"]*?"
或单词字符 \w
[^"]*?"
是一个 "
后跟尽可能少的非引号字符 [^"]*?
,后跟结束 "
。答案 1 :(得分:0)
我不知道如何使用单个正则表达式来做到这一点,但您可以分两步完成。 (i) 用空字符串替换异常; (ii) 在新字符串中搜索。
let text = `Hey "aaa bbbb &&&&&&" !@# "hahaha 123 %%%" !!!`;
let newText = text.replace(/"(.*?)"/g,"");
console.log(newText);
let matches = newText.match(/\W/g);
console.log(matches);