我想从HTML文件中的一行中提取一个数字。我逐行读取文件,并希望通过使用正则表达式从相关行中获取数字。
我试过这样的话:
def reportFileContents = new File("-path to file-").text
reportFileContents.eachLine{ line ->
def valueMatcher = /[n50 length] [*]([0-9]+)/
def matcher = (line =~ valueMatcher)
}
但是当我打印出我的“匹配器”时,我就会得到这样的结果:
java.util.regex.Matcher[pattern=[n50 length] [*]([0-9]+) region=0,22 lastmatch=]
我在这里做错了什么?
答案 0 :(得分:0)
我假设你说你正在尝试匹配像[n50 length] [*]123
这样的字符串?如果是这样,请参阅下面的示例。
def textWithMatches = '''blah blah blah [n50 length] [*]123 blah blah blah
|nothing here
|something else [n50 length] [*]321 something else'''.stripMargin()
def textWithNoMatches = 'no matches here'
assert (textWithMatches =~ /\[n50 length\] \[\*\](\d+)/).collect { it[1] } == [123, 321]
assert (textWithNoMatches =~ /\[n50 length\] \[\*\](\d+)/).collect { it[1] } == []