java正则表达式提取值
时间: 2023-11-09 19:53:54 浏览: 47
Java正则表达式可以通过使用正则表达式的相关方法来提取值。一个常用的方法是使用Pattern和Matcher类。首先需要使用Pattern.compile方法编译正则表达式,然后使用Matcher类的find方法来查找匹配的值,最后使用group方法获取匹配的值。
下面是一个示例代码:
```java
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
String input = "喜欢(2)|不喜欢(0)|无所谓(1)";
String regex = "\\((\\d)\\)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String value = matcher.group(1);
System.out.println(value);
}
}
}
```
在上述代码中,我们使用了正则表达式 `\((\d)\)` 来匹配括号内的数字,然后使用group方法获取匹配的值。输出结果为:
```
2
0
1
```
相关问题
java 正则表达式提取时间字符串
可以使用正则表达式提取时间字符串,具体如下:
1. 提取小时和分钟:
```java
String timeStr = "12:30";
Pattern pattern = Pattern.compile("(\\d{1,2}):(\\d{1,2})");
Matcher matcher = pattern.matcher(timeStr);
if (matcher.find()) {
int hour = Integer.parseInt(matcher.group(1));
int minute = Integer.parseInt(matcher.group(2));
System.out.println("hour: " + hour + ", minute: " + minute);
}
```
输出:
```
hour: 12, minute: 30
```
2. 提取日期和时间:
```java
String dateTimeStr = "2021-10-01 12:30:45";
Pattern pattern = Pattern.compile("(\\d{4}-\\d{2}-\\d{2}) (\\d{2}:\\d{2}:\\d{2})");
Matcher matcher = pattern.matcher(dateTimeStr);
if (matcher.find()) {
String dateStr = matcher.group(1);
String timeStr = matcher.group(2);
System.out.println("date: " + dateStr + ", time: " + timeStr);
}
```
输出:
```
date: 2021-10-01, time: 12:30:45
```
3. 提取时间戳:
```java
String timestampStr = "1633079445000";
Pattern pattern = Pattern.compile("(\\d{13})");
Matcher matcher = pattern.matcher(timestampStr);
if (matcher.find()) {
long timestamp = Long.parseLong(matcher.group(1));
System.out.println("timestamp: " + timestamp);
}
```
输出:
```
timestamp: 1633079445000
```
注意:以上示例仅提供了一些基本的正则表达式提取时间字符串的方法,实际应用中需要根据具体情况进行调整。
java8用正则表达式提取数字
Java 8使用正则表达式提取数字非常简单。在Java 8中,可以使用Pattern和Matcher类来实现正则表达式匹配和提取操作。
首先,需要导入java.util.regex包,然后使用Pattern类编译正则表达式。接下来,可以使用Matcher类对输入文本进行匹配,并从中提取数字。
下面是一个简单的示例代码,演示了如何使用正则表达式提取数字:
```java
import java.util.regex.*;
public class ExtractNumbers {
public static void main(String[] args) {
String input = "Hello 123 World 456";
String pattern = "\\d+"; // 匹配数字的正则表达式
// 编译正则表达式
Pattern p = Pattern.compile(pattern);
// 创建Matcher对象
Matcher m = p.matcher(input);
// 循环匹配并提取数字
while (m.find()) {
String number = m.group(); // 提取匹配到的数字
System.out.println(number);
}
}
}
```
以上代码中,使用了正则表达式"\d+"来匹配多个数字。然后,利用find()方法在输入字符串中寻找匹配的数字。每次调用find()方法,都可以使用group()方法获取匹配到的数字。
在运行以上代码后,输出将会是:
```
123
456
```
这样,就成功使用正则表达式提取了输入文本中的数字。当然,还可以根据实际需求来编写不同的正则表达式,以提取复杂的数字模式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)