文章目录 Pattern类 Matcher类 在Java中使用正则表达式示例 附录 在Java语言中,正则表达式(Regex或Regular Expression)是用于操作、搜索和编辑字符串的应用程序编程……
文
章
目
录
在Java语言中,正则表达式(Regex或Regular Expression)是用于操作、搜索和编辑字符串的应用程序编程接口(API)。您可以通过在代码中导入java.util.regex API包来在Java中使用正则表达式。
java.util.regex包下有以下三个类:
- regex.Pattern:这个类有助于定义模式。
- regex.Matcher:这个类有助于使用模式在输入字符串上执行匹配操作。
- PatternSyntaxException:这个类通过指示正则表达式模式中的语法错误来帮助用户。
util.regex.Pattern类 这个类(util.regex.Pattern)是正则表达式的编译版本,可以通过compile()方法调用。compile()方法接受正则表达式作为第一个参数。这个类不提供任何公共构造函数。
Pattern类
Pattern类中有各种不同的函数,用于处理正则表达式。
方法名 | 描述 |
---|---|
static Pattern compile(String regex) | 用于将给定的正则表达式编译成一个模式。 |
Matcher Matcher (CharSequence input) | 用于创建一个用于匹配给定字符串的匹配器,该字符串由用户输入。 |
String toString() | 该方法返回字符串的表示形式。 |
String[] split(CharSequence input) | 该方法基于匹配将字符串拆分。 |
static Boolean matches(String regex, CharSequence input) | 该方法将正则表达式与给定的输入字符串进行匹配。 |
util.regex.Matcher类 这个类用于通过在任何对象或Pattern上调用matcher()函数,在输入字符串上执行匹配操作。这个类不定义任何公共构造函数。
Matcher类
Matcher类中有各种不同的函数,用于处理正则表达式的匹配操作:
方法名 | 描述 |
---|---|
boolean matches() | 此方法检查正则表达式是否与模式匹配。 |
boolean find() | 此方法在字符串中搜索正则表达式的出现。 |
boolean find(int start) | 此方法从指定的起始索引开始在字符串中搜索正则表达式的出现。 |
String group() | 此方法有助于查找匹配的子序列。 |
int start() | 此方法有助于返回匹配子序列的起始索引。 |
int end() | 此方法有助于返回匹配子序列的结束索引。 |
int groupCount() | 此方法有助于返回匹配子序列的总数。 |
在Java中使用正则表达式示例
示例1:此示例演示了在Java代码中使用点运算符的方法。
import java.util.regex.*;
class reg {
public static void main(String args[]) {
System.out.println(Pattern.matches(\".r.\", \"arp\")); // 此语句显示布尔值 True,因为第二个字符在字符串和正则表达式中都是 r。
System.out.println(Pattern.matches(\".bm\", \"abc\")); // 此语句显示布尔值 False,因为字符串和正则表达式的第三个字符不同。
System.out.println(Pattern.matches(\"..m\", \"msm\")); // 此语句显示布尔值 True,因为字符串和正则表达式的第三个字符都是 m。
System.out.println(Pattern.matches(\"a..s\", \"amns\")); // 此语句显示布尔值 True,因为字符串的第一个字符和最后一个字符与正则表达式匹配。
System.out.println(Pattern.matches(\".s.\", \"mas\")); // 此语句显示布尔值 False,因为字符串和正则表达式的第二个字符不同。
}
}
示例2:以下示例使用正则表达式的不同字符。
import java.util.regex.*;
class Reg1 {
public static void main(String args[]) {
System.out.println(\" 1. \");
System.out.println(
Pattern.matches(\"^[ a-z]om\", \"Tom\")); // 此语句返回 False,因为字符串以大写字母开头,与正则表达式不匹配。
System.out.println(\" 2. \");
System.out.println(
Pattern.matches(\"[Rpq]om\", \"Tom\")); // 此语句返回 False,因为字符串以 \'T\' 开头,与正则表达式中的 R、P 或 Q 中的任何字符不匹配。
System.out.println(\" 3. \");
System.out.println(
Pattern.matches(\"[Tt]om\", \"Tom\")); // 此语句返回 True,因为字符串以 \'T\' 开头,与正则表达式中的字符 \'T\' 匹配。
System.out.println(\" 4. \");
System.out.println(
Pattern.matches(\"Cat|Rat\", \"Rat\")); // 此语句返回 True,因为字符串与正则表达式的第二部分匹配。
System.out.println(\" 5. \");
System.out.println(
Pattern.matches(\"[CM]at|[Bb]ad\", \"Bad\")); // 此语句返回 True,因为字符串与正则表达式的第二部分匹配。
System.out.println(\" 6. \");
System.out.println(
Pattern.matches(\".*bit.*\", \"rabbit\")); // 此语句返回 True,因为字符串包含 \"bit\",与正则表达式匹配。
System.out.println(\" 7. \");
System.out.println(
Pattern.matches(\"^[\\\\d].*\", \"abc\")); // 此语句返回 True,因为字符串以字母开头,与正则表达式不匹配数字。
System.out.println(\" 8. \");
System.out.println(
Pattern.matches(\"^[^\\\\d].*\", \"abc123\")); // 此语句返回 True,因为字符串以字母开头,与正则表达式由于数字的否定匹配。
System.out.println(\" 9. \");
System.out.println(
Pattern.matches(\"[a-zA-Z][a-zA-Z][0-9A-Z]\", \"aPz\")); // 此语句返回 False,因为字符串的最后一个字符 \'z\' 与正则表达式中的 \'0-9A-Z\' 不匹配。
System.out.println(\" 10. \");
System.out.println(
Pattern.matches(\"[a-zA-Z][a-zA-Z][a-zA-Z]\", \"aAA\")); // 此语句返回 True,因为字符串中的所有字符与正则表达式匹配。
System.out.println(\" 11. \");
System.out.println(
Pattern.matches(\"java[tT]poin[tT]$\", \"javaTpoint\")); // 此语句返回 True,因为字符串以 \'t\' 结尾,与正则表达式匹配。
System.out.println(\" 12. \");
System.out.println(
Pattern.matches(\"\\\\D*\", \"abcde\")); // 此语句返回 True,因为字符串不包含任何数字,所以与正则表达式匹配。
System.out.println(\" 13. \");
System.out.println(
Pattern.matches(\"\\\\D*\", \"abcde123\")); // 此语句返回 False,因为字符串包含数字,不符合正则表达式。
}
}
附录
Java常用正则表达式大全
还没有评论呢,快来抢沙发~