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