正则表达式总结 2017.1.6
1、Pattern标记 括号内的表示嵌入表达式
Pattern Pattern.compile(String regex,int flag),其中的flag来自以下Pattern类中的常量:
Pattern.CASE_INSENSITIVE(?i) 这个标记允许模式不必考虑大小写
Pattern.COMMENTS(?x) 在这种模式下,空格符将被忽略掉,并且以#开始直到行末的注释也会被忽略掉
Pattern.DOTALL(?s) 在dotall模式中,表达式"."匹配所有字符,包括行终结符。默认情况下,“.”表达式不匹配行终结符。
Pattern.MULTILINE(?m) 在多行模式下,表达式^和$分别匹配一行的开始和结束。^还匹配输入字符串的开始,$还匹配输入字符串的结尾。默认情况下,这些表达式仅匹配输入的完整字符串的开始和结束。
Pattern.UNICODE_CASE(?u) 指定这个标记,并且开启CASE_INSENSITIVE时,大小写不敏感的匹配将按照与Unicode标准相一致的方式进行。
Pattern.UNIX_LINES(?d) 在这种模式下,在 . 、^ $ 行为中,只识别终结字符 \n
2、split()方法将输入字符串断开成字符串对象数组,断开边界由正则表达式确定:
String[] split(CharSequence input)
String[] split(CharSequence input,int limit)
package stringbuilder; import java.util.Arrays; import java.util.regex.Pattern; public class SplitDemo { public static void main(String[] args) { String input="This!!unusual use!!of exclamation!!points"; System.out.println(Arrays.toString(Pattern.compile("!!").split(input))); System.out.println(Arrays.toString(Pattern.compile("!!").split(input,3))); } }
运行结果:
[This, unusual use, of exclamation, points]
[This, unusual use, of exclamation!!points]