Regex java用于检查开始[和结束],但可以在开始和结束处\t\r\n
我需要检查字符串是否以[
开头,以]
结尾,但允许在方括号之前/之后使用空格
我可以使用trim()
,然后检查结束字符,但是字符串可能很长(超过100000个字符),因此创建新的修剪字符串可能会很昂贵。我想知道,考虑到较大的字符串大小,提供合理性能的最佳方法是什么
应通过的示例输入:
"\t\n\r [ (very long string) ] \t \r \n"
使用正则表达式,我得到了下面的表达式,但不知道它是否绝对正确,或者它是否会运行良好
(^|\s+)\[((.*)|\s)+\]($|\s+)
解决这个问题的最佳方法是什么
# 1 楼答案
这是一个快速JavaScript版本,也可以轻松应用于Java:
此正则表达式的注释:
^
和$
)只允许前导&;尾随空白\s*
而不是\s+
,因为后者需要对空白进行或测试[^\]]*
避免使用回溯的昂贵的.*
正则表达式