0

我正在使用以下正则表达式来捕获遵循某些条件的字符串数组(例如:它没有以某些字母或数字开头,并且仅包含由单引号或双引号引起来的字符串):

/^?[ =>]\[(('|")[^('|")\s]*('|")(, ?)?)+\]/

它应该捕获

["bla", "ble", "blo"]

但是,如果它是(单引号或双引号)之间的字符串的一部分,则不应捕获它:

'["bla", "ble", "blo"]'

我应该添加什么来避免捕获那些不需要的案例?

4

1 回答 1

1

向您的模式添加一个否定的后向/前瞻表达式:

(?<!['])(?!['])(\[(('|")[^('|")\s]*('|")(, ?)?)+\])

测试时为我工作,但这可能取决于您的正则表达式引擎。

于 2013-04-20T03:38:54.007 回答