java 正则”.”匹配换行符
Posted On 2013年10月27日
Java 如何匹配换行符呢? 查阅资料发现, “.” 并不是一定可以匹配所有字符,例如\r\n , “.” 并不一定就能匹配到. 资料也进行了说明. 但遗憾的是并没有说哪些情况下不能匹配到, 哪些情况可以匹配到. 在windows vista , jdk1.6 中, 经过我测试无法用”.” 正则表达式中所说的”.”匹配任意字符来匹配到换行符.
所以呢,我们得曲线救国了. 例如可以用 [^\\] 的方式, 例如该意思是所有不包含\的字符,那么自然可以包含换行符了. 缺点,你需要指定一个不需要匹配的字符.
. | any character at all (not new line in some circumstances) |
Operator Type | Examples | Description |
---|---|---|
Literal Characters Match a character exactly |
a A y 6 % @ | Letters, digits and many special characters match exactly |
\$ \^ \+ \\ \? | Precede other special characters with a \ to cancel their regex special meaning |
|
\n \t \r | Literal new line, tab, return | |
\cJ \cG | Control codes | |
\xa3 | Hex codes for any character | |
Anchors and assertions | ^ | Starts with |
$ | Ends with | |
\b \B | on a word boundary, NOT on a word boundary |
|
Character groups any 1 character from the group |
[aAeEiou] | any character listed from [ to ] |
[^aAeEiou] | any character except aAeEio or u | |
[a-fA-F0-9] | any hex character (0 to 9 or a to f) | |
. | any character at all (not new line in some circumstances) |
|
\s | any space character (space \n \r or \t) | |
\w | any word character (letter digit or _) | |
\d | any digit (0 through 9) | |
\S \W \D | any character that is NOT a space word character or digit |
|
Counts apply to previous element |
+ | 1 or more (“some”) |
* | 0 or more (“perhaps some”) | |
? | 0 or 1 (“perhaps a”) | |
{4} | exactly 4 | |
{4,} | 4 or more | |
{4,8} | between 4 and 8 | |
Add a ? after any count to turn it sparse (match as few as possible) rather than have it default to greedy | ||
Alternation | | | either, or |
Grouping | ( ) | group for count and save to variable |
(?: ) | group for count but do not save | |
Variables | $xyz | Insert contents of $xyz into regular expression |
\1 \2 | Back reference to 1st, 2nd etc matched groups |
此篇文章已被阅读2300 次