我有一个像
这样的字符串Berlin -> Munich [label="590"]
现在我在Java中搜索正则表达式,检查给定行(如上所述)是否有效。
目前,我的RegExp看起来像\\w\\s*->\\s*\\w\\s*\\[label=\"\\d\"\\]"
但是,它不起作用,我发现\\w\\s*->\\s*\\w\\s*
仍然有效,但在添加\\[
时,它无法找到出现(\\w\\s*->\\s*\\w\\s*\\[)
。
我还发现,当'->'
被移除时,它会有效(\\w\\s*\\s*\\w\\s*\\[)
箭头是问题吗?难以想象。 我真的需要一些帮助。
提前谢谢
答案 0 :(得分:1)
试试这个
String message = "Berlin -> Munich [label=\"590\"]";
Pattern p = Pattern.compile("\\w+\\s*->\\s*\\w+\\s*\\[label=\"\\d+\"\\]");
Matcher matcher = p.matcher(message);
while(matcher.find()) {
System.out.println(matcher.group());
}
您需要多个字符和数字标记。
答案 1 :(得分:1)
这是正确的正则表达式:
"\\w+\\s*->\\s*\\w+\\s*\\[label=\"\\d+\"\\]"
您报告的关于部分正则表达式的匹配和不匹配的内容非常不可能,柏林/慕尼黑字符串无法实现。
此外,如果你真的喜欢德国城市名称,你可能需要考虑像Castrop-Rauxel
这样的名字(有些人称之为拉丁名Wanne-Eickel
;-))