0

我正在尝试匹配以下形式的字符串:

require([ "foo/bar", "foo2/bar2" ])

应该完全忽略空格。我正在使用以下正则表达式但收效甚微:

require\\(\s*\\[[.\s]*\\]\\)

有什么建议么?我知道正则表达式尝试是可怕的......

编辑:我正在使用 Python!

4

1 回答 1

2

如果您使用带有双引号字符串或类似字符串的 Java 或 PHP,则还需要对它们进行双重转义\s。如果不是,那么您需要删除所有双反斜杠(并使它们成为单反斜杠)。另请注意,[.\s]仅匹配句点和空格(.在字符类中失去通配符含义)。如果您真的想匹配任何东西,请改用[\s\S]

假设您使用的语言需要双重转义:

require\\(\\s*\\[[\\S\\s]*\\]\\)

请注意,如果这在同一个字符串中多次发生,这将导致问题。然后你会得到一个从 firstrequire([到 last的匹配])。为避免这种情况,]请在重复中禁止。require但是,请注意,如果您的字符串可能包含自己,这反过来可能会导致问题]

require\\(\\s*\\[[^]]*\\]\\)
于 2012-10-25T15:59:35.433 回答