我有一些输入文本有未完成的引用字符串。我想找到它们:
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
答案 0 :(得分:3)
您可以尝试类似
的内容"(?:[^"]|"")*[^"]$
它与初始"
匹配,后跟1 - 一个不是"
的字符,或者2 - ""
两个引用字符最后由一个不是引用的字符结束。
修改强>
这是一个更复杂的问题,在一行上处理多个引号,以及句子中间引号
^(?:[^"\n]*"(?:[^"\n]|"")*")*[^"\n]*("(?:[^"\n]|"")*)$