^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。
/[-.(]/ 在符号中的连字符-放在第一位表示连字符本身,如果放在中间,表示"从..到..",比如[a-z]表示a-z
[.)] 括号中的特殊符号不需要转义,就表示其本身
[^ab] 括号中的^表示非,anythings except a and b
^w+ 多了一个^,这样子,就只能匹配到每一行开头的单词了This is a wordssequence Hello GoodBye Go
w+$ 这样就能匹配到每行的最后一个字母
.是贪婪的,他表示所有,所有能匹配到的,所以当然也包括了],一直到这一行的最后一个],它才停止。
所以为了让它能正确匹配,需要去掉这种贪婪的属性。这里用到? 。 当?放在了quantifiers符号后,表示去掉贪婪属性,匹配到终止条件,即可停下
?符号可以禁止贪婪属性,放在.*之后,表示一次匹配遇到重点就可以停止。否则将会一直向后匹配
参考
Regular expressions in Java - Tutorial https://www.vogella.com/tutorials/JavaRegularExpressions/article.html