我正在尝试匹配以下形式的字符串:
require([ "foo/bar", "foo2/bar2" ])
应该完全忽略空格。我正在使用以下正则表达式但收效甚微:
require\\(\s*\\[[.\s]*\\]\\)
有什么建议么?我知道正则表达式尝试是可怕的......
编辑:我正在使用 Python!
如果您使用带有双引号字符串或类似字符串的 Java 或 PHP,则还需要对它们进行双重转义\s
。如果不是,那么您需要删除所有双反斜杠(并使它们成为单反斜杠)。另请注意,[.\s]
仅匹配句点和空格(.
在字符类中失去通配符含义)。如果您真的想匹配任何东西,请改用[\s\S]
。
假设您使用的语言需要双重转义:
require\\(\\s*\\[[\\S\\s]*\\]\\)
请注意,如果这在同一个字符串中多次发生,这将导致问题。然后你会得到一个从 firstrequire([
到 last的匹配])
。为避免这种情况,]
请在重复中禁止。require
但是,请注意,如果您的字符串可能包含自己,这反过来可能会导致问题]
:
require\\(\\s*\\[[^]]*\\]\\)