Javascript 是否有一个正则表达式会忽略用引号括起来的单词

Javascript 是否有一个正则表达式会忽略用引号括起来的单词,javascript,regex,Javascript,Regex,我正在尝试创建一个正则表达式,它不会匹配带引号的单词,但会匹配不带引号的单词,例如 -“欢迎”-错误 -欢迎使用-true(?=([^“]*”[^“]*”*[^“]*”)将排除字符串中的所有双引号以及这些双引号中的所有文本。 如果您有任何换行符,这也将删除所有换行符 is my source您只能匹配后跟偶数双引号的单词,这意味着它们本身不在引号内(假设您的引号总是成对的): 函数getWord(txt){ txt=txt.match(/\w+(?=[^”]*(“[^”]*“[^”]*)*$)

我正在尝试创建一个正则表达式,它不会匹配带引号的单词,但会匹配不带引号的单词,例如

-“欢迎”-错误
-欢迎使用-true

(?=([^“]*”[^“]*”*[^“]*”)
将排除字符串中的所有双引号以及这些双引号中的所有文本。
如果您有任何换行符,这也将删除所有换行符

is my source

您只能匹配后跟偶数双引号的单词,这意味着它们本身不在引号内(假设您的引号总是成对的):

函数getWord(txt){ txt=txt.match(/\w+(?=[^”]*(“[^”]*“[^”]*)*$)/); 返回txt&&txt[0]; } var input=document.querySelector('input'); var输出=document.querySelector('span'); input.oninput=函数(){ output.textContent=getWord(input.value); } oninput()
Word:

第一个非引号:
我试图提取带引号的内容,并用“([^”])*(\bwelcome\b)”删除它们,但这不是正确的方法soltion@DanielBeck引用OP:“这将与引号中的单词不匹配”。强调我的。多个单词如何?表达式是否应包含引号中的多个单词?(例如,
“这有四个单词“words
将只匹配单词”words”)@JosephMarikle在最大使用情况下,它将只匹配两个单词您希望
“两个”单词和
两个单词的输出是什么?
\w+(?=[^"]*("[^"]*"[^"]*)*$)