java 正则表达式匹配
时间: 2023-06-09 22:05:37 浏览: 94
Java正则表达式匹配可以使用java.util.regex类。常见的用法是使用Pattern匹配器构造一个正则表达式,然后使用该正则表达式进行字符串匹配。例如,以下代码可以判断一个字符串是否为手机号:
```java
String regex = "^1[34578]\\d{9}$"; // 手机号正则表达式
Pattern pattern = Pattern.compile(regex);
String phoneNumber = "13912345678"; // 待匹配的手机号
boolean isMatched = pattern.matcher(phoneNumber).matches();
System.out.println(isMatched); // true
```
这里的正则表达式是"^1[34578]\\d{9}$",表示以1开头,后跟3、4、5、7、8中的一个数字,并且后面跟着9个数字,这个正则表达式可以匹配符合规则的手机号。
注意,特殊字符需要转义,比如"\\d"匹配数字,"\\s"匹配空白字符,"\\w"匹配字母、数字、下划线等,而"\\."匹配句点本身。
相关问题
java正则表达式匹配
Java正则表达式是一种用于匹配文本字符串的模式。Java中的正则表达式可以用来搜索、替换或验证文本。以下是一些常用的Java正则表达式模式:
1. 匹配任意字符:.
2. 匹配任意数字:\d
3. 匹配任意字母或数字:\w
4. 匹配任意空白字符:\s
5. 匹配任意非空白字符:\S
6. 匹配重复字符:{n},{n,},{n,m}
7. 匹配多个字符中的一个:[abc]
8. 匹配多个字符中的任意一个:[a-z]
9. 匹配多个字符中的任意一个,排除某些字符:[^abc]
10. 匹配字符串的开头:^
11. 匹配字符串的结尾:$
12. 匹配多个字符中的任意一个,忽略大小写:(?i)
13. 匹配多个字符中的任意一个,非贪婪模式:(.*?)
Java中可以使用Pattern和Matcher类来使用正则表达式。具体使用可以参考以下示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args) {
String text = "Hello, world! This is a test text.";
// 匹配单词
String patternStr = "\\b\\w+\\b";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
// 匹配邮件地址
patternStr = "\\b\\w+@\\w+\\.\\w+\\b";
pattern = Pattern.compile(patternStr);
matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
```
java正则表达式匹配多行
Java正则表达式可以使用Pattern类和Matcher类来进行匹配操作。要匹配多行文本,可以使用Pattern类的MULTILINE标志。
以下是一个示例代码,演示了如何使用Java正则表达式匹配多行文本:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MultiLineRegexExample {
public static void main(String[] args) {
String text = "Line 1\nLine 2\nLine 3";
// 使用Pattern.MULTILINE标志来匹配多行文本
Pattern pattern = Pattern.compile("^Line \\d$", Pattern.MULTILINE);
Matcher matcher = pattern.matcher(text);
// 查找匹配的行
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
```
运行以上代码,输出结果为:
```
Line 1
Line 2
Line 3
```
在上述代码中,我们使用`Pattern.compile("^Line \\d$", Pattern.MULTILINE)`来创建一个正则表达式模式,其中`^Line \\d$`表示匹配以"Line "开头,后跟一个数字,然后以行结束符结尾的行。通过指定`Pattern.MULTILINE`标志,我们可以匹配多行文本。
然后,我们使用`matcher.find()`方法来查找匹配的行,并使用`matcher.group()`方法获取匹配的行。