Regex 正则表达式-忽略引号
我在用正则表达式Regex 正则表达式-忽略引号,regex,Regex,我在用正则表达式 (?:^|;)\s*([^=]*[^=\s])\s*=\s*([^;]*[^;\s]) 在下面的字符串上 """A"" = .B; ""C"" = .D; ""E"" = .F" 第二个捕获组([^;]*[^;\s])匹配文本.B、.D和.F”,而第一个捕获组匹配文本“A”、“C”和“E” 如何更新此正则表达式以仅匹配文本,即.B,.D和.F,以及A,C和e 我已经尝试将引号添加到捕获组中,例如,([^=\“]*[^=\s]),但这似乎没有任何影响。您可以在键值之前匹配零个
(?:^|;)\s*([^=]*[^=\s])\s*=\s*([^;]*[^;\s])
在下面的字符串上
"""A"" = .B; ""C"" = .D; ""E"" = .F"
第二个捕获组([^;]*[^;\s])
匹配文本.B
、.D
和.F”
,而第一个捕获组匹配文本“A”
、“C”
和“E”
如何更新此正则表达式以仅匹配文本,即.B
,.D
和.F
,以及A
,C
和e
我已经尝试将引号添加到捕获组中,例如,
([^=\“]*[^=\s])
,但这似乎没有任何影响。您可以在键值之前匹配零个或多个引号,然后通过将其添加到类中并在紧跟其后再次匹配0+引号来限制[^=\s]
字符类以避免匹配”
:
(?:^|;)\s*"*([^=]*[^=\s"])"*\s*=\s*([^;]*[^;\s"])
^^ ^ ^^ ^
请参阅。注意,[^;]*
也将匹配双引号(如果有),因为它是一种贪婪模式
详细信息
-字符串的开头或(?:^ |)
;
-0+空格\s*
- *-0+双引号
-第1组:([^=]*[^=\s“])
-0+字符,而不是[^=]*
=
-除[^=\s”]
、空格和=
“
- *-0+双引号
-a\s*=\s*
包含0+空格=
-第2组:([^;]*[^;\s“])
-0+字符,而不是[^;]*
;
-除[^;\s”]
以外的字符代码>、空格和
“