0

我正在尝试获取 value 属性的值,它可以是任何整数,包括小于零的整数

val source = """...some noise .... <input type="hidden" name="myId" id="myId" value="1234"/> ...some noise ....""" // or value="-5678"/>

val regex = """<input type="hidden" name="myId" id="myId" value="([-?\\d+])"/>""".r
regex findAllIn source 

我得到scala.util.matching.Regex.MatchIterator = empty iterator

4

3 回答 3

1

你的正则表达式没有做你认为它做的事情。它匹配-or?\ord+。您已将所有内容放入字符类中。你应该使用:

(-?\d++)

当您使用 Scala 牛肚引号时,您不需要双重转义\

于 2013-10-08T12:57:31.567 回答
0

除了@M42 所说的(删除方括号),您还想删除数字标记之前的反斜杠之一 - 请记住您在“三引号”字符串中 - 您不需要转义反斜杠:

(-?\d+)
于 2013-10-08T12:58:17.623 回答
0

Change this part:

([-?\\d+])

to:

(-?\\d+)
于 2013-10-08T12:48:17.263 回答