什么是正则表达式?
正则表达式定义字符串的搜索模式。正则表达式的缩写是regex。搜索模式可以是简单字符、固定字符串或包含描述模式的特殊字符的复杂表达式。正则表达式定义的模式可能匹配一个或多个给定字符串,或者根本不匹配。
正则表达式可用于搜索、编辑和操作文本。
使用正则表达式分析或修改文本的过程称为:将正则表达式应用于文本/字符串。正则表达式定义的模式从左到右应用于文本。一旦在匹配中使用了源字符,就不能重用它。例如,regex aba将只匹配ababababa两次(aba_aba__) 。
大多数编程语言(如Java、Perl、Groovy等)都支持正则表达式。不幸的是,每种语言支持的正则表达式的策略有不同。
Method和对象
在Java (java.lang.String)中,使用正则表达式搜索字符串时常用的method为:
-
boolean matches(String regex)
用于检测字符串是否匹配给定的正则表达式,判断该字符串是否与给定的正则表达式匹配。
参数:regex – 匹配字符串的正则表达式。 -
String replaceAll(String regex, String replacement)
replaceAll() 方法使用给定的参数 replacement 替换字符串所有匹配给定的正则表达式的子字符串。
返回一个字符串,替换与regex和替换字符串匹配的所有字符序列。 -
String[] split(String regex)
java.lang.String.split(String regex) method根据给定的正则表达式的匹配来拆分此字符串
此method的工作方式与使用给定表达式和限制参数0调用split方法的方式相同。因此,结果数组中不包含尾随空字符串。
参数:regex—定界正则表达式。
专门提供正则表达式的对象。
-
Pattern对象
正则表达式的编译表示。必须首先将指定为字符串的正则表达式编译为此类的实例。然后,生成的模式可用于创建匹配器对象,该对象可将任意字符序列与正则表达式匹配。执行匹配所涉及的所有状态都位于匹配器中,因此许多匹配器可以共享相同的模式。 -
Matcher对象
通过解释模式对字符序列执行匹配操作的引擎。
matcher是通过调用模式的matcher方法从模式创建的。一旦创建,匹配器可用于执行三种不同的匹配操作:
matches方法尝试将整个输入序列与模式匹配。
lookingAt方法尝试根据模式匹配从开头开始的输入序列。
find方法扫描输入序列,寻找与模式匹配的下一个子序列。