我正在使用以下正则表达式来捕获遵循某些条件的字符串数组(例如:它不是由某个字母或数字加上,只包含由单引号或双引号括起来的字符串):
/^?[ =>]\[(('|")[^('|")\s]*('|")(, ?)?)+\]/
它应该捕获
["bla", "ble", "blo"]
然而,它不应该捕获,如果它是(单引号或双引号)之间的字符串的一部分:
'["bla", "ble", "blo"]'
我应该添加什么以避免捕获那些不需要的案例?
答案 0 :(得分:1)
为您的模式添加负向lookbehind / lookahead表达式:
(?<!['])(?!['])(\[(('|")[^('|")\s]*('|")(, ?)?)+\])
在测试时为我工作,但它可能取决于您的正则表达式引擎。