正则表达式找到未完成的引用字符串

时间:2017-01-12 08:40:42

标签: javascript regex

我有一些输入文本有未完成的引用字符串。我想找到它们:

Tom said "I don't know why Mary asked me ""who are you?""". Tom told her "I'm Tom 
Mary kept silent. She said ""
Daisy told Tom "I will be there
She told me "She answered ""I met Tom last year""

预期的结果是:

1> "I'm Tom
2> "I will be there
3> "She answered ""I met Tom last year""

我的模式是/"(?:[^"] |"")* [^"] $ / g

1 个答案:

答案 0 :(得分:3)

您可以尝试类似

的内容
"(?:[^"]|"")*[^"]$

它与初始"匹配,后跟1 - 一个不是"的字符,或者2 - ""两个引用字符最后由一个不是引用的字符结束。

See it here at regex101

修改

这是一个更复杂的问题,在一行上处理多个引号,以及句子中间引号

^(?:[^"\n]*"(?:[^"\n]|"")*")*[^"\n]*("(?:[^"\n]|"")*)$

Here it is at regex101