[英]User Java Regex to extract data from String
这是输入格式:
<1> today is <2> current time is <3> humidity is <4>
我想使用Java Regex来获取<1>
, <2>
, <3>
和<4>
。
例如,如果输入是
Hello today is 03/17 current time is 03:20 humidity is 50%
我想得到Hello
, 03/17
: 03:20
和50%
谁能帮我看看正则表达式应该是什么?
更新:
您可以将匹配器与正则表达式配合使用,以提取所需的模板输入语句的各个部分。
String input = "Hello today is 03/17 current time is 03:20 humidity is 50%";
Pattern p = Pattern.compile("(.*) today is (.*) current time is (.*) humidity is (.*)");
Matcher m = p.matcher(input);
if (m.find()) {
System.out.println("Found greeting: " + m.group(1));
System.out.println("Found date: " + m.group(2));
System.out.println("Found time: " + m.group(3));
System.out.println("Found humidity: " + m.group(4));
}
输出:
Found greeting: Hello
Found date: 03/17
Found time: 03:20
Found humidity: 50%
请注意,捕获组从索引1开始,而不是0,因为m.group(0)
返回要对其应用正则表达式的整个原始字符串。
以下是我的原始答案,是在您更新问题之前给出的:
一种简单的方法是将句子按空格分隔,然后保留其中至少有一个数字的任何术语:
String input = "Hello today is 01/17 current time is 03:20 humidity is 50%.";
String[] parts = input.split("\\s+");
for (String part : parts) {
if (part.matches(".*\\d+.*")) {
System.out.println(part);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.