一个长字符串如下规则:每组组成部分为:ID|名称|取值,由多个组组成,组与组之间用$隔开,这种用java的正则表达式如何去匹配??求高手大佬解
下面是一个可以匹配每组组成部分为"ID|名称|取值",由多个组组成,组与组之间用"$"隔开的正则表达式
(\w+)\|(\w+)\|(\w+)(\$|$)
这个正则表达式的含义是:
(\w+) 匹配任意多个字母、数字或下划线,用于匹配ID、名称和取值;
| 匹配 "|" 字符,用于分隔ID、名称和取值;
($|$) 匹配 "$" 字符或者行尾,用于表示一个组的结束。
在使用这个正则表达式时,可以使用 Pattern 和 Matcher 类进行匹配。下面是一个示例代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String input = "ID1|Name1|Value1$ID2|Name2|Value2$ID3|Name3|Value3$";
String pattern = "(\\w+)\\|(\\w+)\\|(\\w+)(\\$|$)";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
while (m.find()) {
String id = m.group(1);
String name = m.group(2);
String value = m.group(3);
System.out.println("ID: " + id);
System.out.println("Name: " + name);
System.out.println("Value: " + value);
}
}
}
这个代码会输出每个组的ID、名称和取值,例如:
ID: ID1
Name: Name1
Value: Value1
ID: ID2
Name: Name2
Value: Value2
ID: ID3
Name: Name3
Value: Value3