我有以下字符串:
<134>1 2019-01-15T10:55:19.016+01:00 Foo Bar 12345 - [Question=Computer-Name Count="1" Computer-Name="IneedThisPart"]
提取我需要的部分“ IneedThisPart”(不带引号)所需的正则表达式是什么
Java regex解析器
答案 0 :(得分:1)
要在字符串中查找该特定部分,可以使用此正则表达式,
Computer-Name="([^"]+)"
这将查找Computer-Name="
文本,然后从(
开始第1组,并捕获除"
以外的所有文本,然后用)
关闭该组,并进一步期望看到"
并从组1查找数据。只要您以任何顺序在输入字符串中包含Computer-Name="IneedThisPart"
数据,此正则表达式都将起作用。它将始终找到您想要的字符串。
这里是相同的Java代码。
String s = "<134>1 2019-01-15T10:55:19.016+01:00 Foo Bar 12345 - [Question=Computer-Name Count=\"1\" Computer-Name=\"IneedThisPart\"]";
Pattern p = Pattern.compile("Computer-Name=\"([^\"]+)\"");
Matcher m = p.matcher(s);
if(m.find()) {
System.out.println(m.group(1));
} else {
System.out.println("Didn't match");
}
打印
IneedThisPart
答案 1 :(得分:0)
根据语言更新
使用Java,您可以执行以下操作:
^.+"([^"]+)"
您将在第1组中找到所需的字符串
说明:
^ # beginning of string
.+ # 1 or more any character
" # a quote
( # start group 1
[^"]+ # 1 or more non quote
) # end group
" # a quote