我想匹配字符串中每个[[]]
内的所有空格,这样我就可以使用replaceAll方法删除它们。
输入示例:text text [[ ia asd ]] [[asdasd]] dfgd dfaf sddgsd [[sss aaa]]
预期输出:text text [[iaasd]] [[asdasd]] dfgd dfaf sddgsd [[sssaaa]]
我想到了这一点:\[\[(\s*?)\]\]
,它应该匹配双括号之间的所有空格,但它不匹配任何内容。
我也尝试了其他几个解决类似问题的方法,但似乎都不起作用。
你知道还有什么别的办法吗?
1条答案
按热度按时间xtupzzrd1#
考虑到它是Java,您可以使用
或者,另一种方法是匹配
[[
和]]
之间的所有子字符串,然后删除匹配项中的任何空格:请参阅Java demo online。
第一个正则表达式表示:
(\G(?!^)|\[\[)
-第1组($1
):[[
或前面成功匹配的结尾((?:(?!]]).)*?)
-第2组($2
):除换行符字符以外的任何字符,零个或多个但尽可能少地出现,且不启动]]
字符序列\s+
-一个或多个空格(?=.*?]])
-紧靠右侧,必须有除换行符字符以外的任何零个或多个字符,尽可能少,然后是]]
。