1
我有以下代碼:如何使用正則表達式匹配整個字符串
def main(args: Array[String]) {
val it = ("\\b" + "'as" + "\\b").r.findAllMatchIn("'as you are a's".toLowerCase());
val lst = it.map(_.start).toList
print(lst)
}
我希望答案是List(0)
(因爲它匹配'as
和指標應0
),但它給了我List()
此外,
def main(args: Array[String]) {
val it = ("\\b" + "as" + "\\b").r.findAllMatchIn("'as you are a's".toLowerCase());
val lst = it.map(_.start).toList
print(lst)
}
這給我的回答List(1)
但我預計一nswer是List()
,因爲我想匹配整個事情(需要精確匹配'as
),這就是爲什麼我用\b
這裏
但它運行良好:
def main(args: Array[String]) {
val it = ("\\b" + "a's" + "\\b").r.findAllMatchIn("'as you are a's".toLowerCase());
val lst = it.map(_.start).toList
print(lst)
}
它返回List(12)
這就是我想要的(因爲它匹配a's
和索引應該是12
)。
我不明白爲什麼它不起作用,當我把'
放在字的前面。我怎樣才能做到這一點?
@yeah,所以我怎麼整字符串匹配? – CSnerd 2014-12-07 18:10:06
無論如何,您並不期望與整個字符串匹配......只要可能,只有「as」。從正面刪除'\\ b'。 – 2014-12-07 18:12:18
一個簡單的例子,用'(?:\ b |')'預先檢查:http://fiddle.re/ta2bn6 – 2014-12-07 19:08:24