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