我使用回归表达式来查找模式,例如:
"Today USER ID: 123556 cancelled"
"January USER ID: 236477 renewed"
"February USER ID: 645689 dispute"
基本上我正在寻找包含“USER ID:”+数字的字符串。我使用以下代码,但它无法匹配任何东西。有人可以提出一些建议吗?
if (myString.matches("USER ID: ([0-9]+)")) {
println(a)
}
答案 0 :(得分:3)
应该是:
if (myString.matches("^USER ID: ([0-9]+)$")) {
在正则表达式字符串中没有斜杠,并且在USER ID后面没有空格:
刚刚测试过,它对我有用,如下所示:
String string = "USER ID: 12345";
if(string.matches("^USER ID: ([0-9]+)$")){
System.out.println("matches");
}
有很多好的"正则表达式的cheatsheets"在那里。你可以在这里找到一个这样的: http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
答案 1 :(得分:1)
^USER ID: ([0-9]+)$
^^
您错过了此space
。
答案 2 :(得分:0)
在Scala中(在标记之后),定义此正则表达式
buttonClicked
我们在数字序列之前允许多个空格;因此
val re = "USER ID:\\s+\\d+".r
如果找到模式,则传递val a = "Today USER ID: 123556 cancelled"
re.findFirstIn(a)
Option[String] = Some(USER ID: 123556)
值,否则为Some[String]
。
要回答是否找到了模式,请考虑
None