我想出了:([^“] * [”] [^“] * [”] [^“] *)*
除了空字符串之外,它适用于所有情况.我认为它会起作用,因为最后一个星号匹配前一个标记零次或多次.
有任何想法吗?
如果还有更好的方法,请告诉我并详细解释.
解决方案必须是正则表达式,因为它将被使用的地方是需要正则表达式的钩子.
它必须匹配一个没有引号的字符串,因为零是偶数
你的正则表达式应该匹配完全空的字符串,但不是由单个空格组成的字符串,因为正则表达式声明如果字符串不是完全空的,则需要包含至少
一个双引号.这是因为正则表达式中的[“]
标记后面没有*.
考虑所需正则表达式的正确方法如下:你想匹配(不带双引号的字符串)后跟(双引号)加(不带双引号的字符串)后跟(双引号)后跟(不带双引号的字符串) ),然后从第一个’后跟’无限重复开始重复.没有双引号的字符串是[^“] *,所以你得到(为了可读性添加了空格):
[^"]* (" [^"]* " [^"]*)*
如果将其与正则表达式进行比较,则第一个[^“] *已被移出重复.