正则表达式异常

时间:2021-02-12 19:12:46

标签: javascript regex

有没有办法给正则表达式添加正则表达式异常?

示例:

(regular expression/regular expression to ignore)

我有以下正则表达式:

\W

但希望它忽略引号内的字符串(我将使用的正则表达式是:"(.*?)")。但我不知道如何向 \W 正则表达式添加例外。

我想要这样的东西:

\W(ignore->"(.*?)")

有什么想法吗?任何帮助将不胜感激。

2 个答案:

答案 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);