[英]Any regular expression to extract property from String?
我有一个包含以下属性的字符串:
"T=Junior Developer, DNQ=13346057, SURNAME=Doe, GIVENNAME=John, SERIALNUMBER=UK"
是否存在可以在Java中使用的正则表达式来收集各个属性(例如SURNAME)?
谢谢
这个小示例显示了如何在示例字符串中访问属性名称及其值。 这适用于字符串中的所有属性和值。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Test {
public static void main(String[] args) {
String s = "T=Junior Developer, DNQ=13346057, SURNAME=Doe, GIVENNAME=John, SERIALNUMBER=UK";
Matcher m = Pattern.compile("(?:, )?([^=]+)\\=([^,]+)").matcher(s);
while (m.find()) {
System.out.println(m.group(1) + " - " + m.group(2));
}
}
}
正则表达式的解释:
(?:, )?([^=]+)\\=([^,]+)
(?:, )?
是可以但不一定要发生的非捕获组。 它通过属性值对之间的逗号和空格分隔分隔符。 ([^=]+)
是一个与一个或多个字符匹配的组,直到出现=
。 \\\\=
匹配=
。 这是一个特殊字符,因此必须转义。 ([^,]+)
的一个或多个字符匹配到下一个,
当下一个属性格式将启动。 SURNAME=[^,]+
您可以使用它。或者为了安全起见,您也可以使用
SURNAME=.*?(?=,\s)
第二个将工作,即使你有,
你的姓。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.