我有一个像这样的字符串:
val rawData = "askljdld<a>content to extract</a>lkdsjkdj<a>more content to extract</a>sdkdljk
我希望在标记<a>
我试过这个,但正则表达式的结尾部分没有像我预期的那样工作:
val regex = "<a>(.*)</a>".r
for(m <- regex.findAllIn(rawData)){
println(m)
}
输出是:
<a>content to extract</a>lkdsjkdj<a>more content to extract</a>
我了解发生了什么:正则表达式找到第一个<a>
和最后一个</a>
。
我怎么能有一个带有两个条目的迭代器?
<a>content to extract</a>
<a>more content to extract</a>
提前致谢
答案 0 :(得分:1)
一切都很简单:"<a>(.*?)</a>"
.*?
- 表示anything until something
。在你的情况下,直到</a>
答案 1 :(得分:0)
你的正则表达不是正确的。您应该使用<a>(.*?)</a>
代替
val rawData = "askljdld<a>content to extract</a>lkdsjkdj<a>more content to extract</a>sdkdljk"
val regex = "<a>(.*?)</a>".r
regex.findAllIn(rawData).foreach(println)