Regex 科特林:可以';t解析包含多个反斜杠的正则表达式-为什么我有一个;未关闭的组“;?
我试图匹配此字符串示例中“三重转义”的锚链:Regex 科特林:可以';t解析包含多个反斜杠的正则表达式-为什么我有一个;未关闭的组“;?,regex,parsing,kotlin,Regex,Parsing,Kotlin,我试图匹配此字符串示例中“三重转义”的锚链: bla一些文本它可以工作,但我需要在Kotlin中进行过滤,我想我可以这样做: fun findEscapedAnchors(text: String): String { val pattern = "href=(\\\\\\)(\"#.*)(\\\\\\)\"" val regex = pattern.toRegex() val matches = regex.find(text) // do something
bla一些文本它可以工作,但我需要在Kotlin中进行过滤,我想我可以这样做:
fun findEscapedAnchors(text: String): String {
val pattern = "href=(\\\\\\)(\"#.*)(\\\\\\)\""
val regex = pattern.toRegex()
val matches = regex.find(text)
// do something with the matches
}
首先,如果我将这个字符串粘贴到我的代码中(在Android Studio中),它会自动转义更多,但它不起作用。如果我编辑它以匹配上面的字符串,它会抱怨有一个未关闭的组。我想我可以把它放在三个引号里,不必转义字符,但这也失败了。我做错了什么 我自己已经弄明白了:一个原始字符串(三重引号)确实是一种方法,但是Regex
显然仍然需要字符串中的字符转义。以前,我把它们去掉了,因为我认为这就是原始弦的工作原理,但我错了。因此,它现在适用于:
val regex = """href=(\\\\\\)(\"#.*)(\\\\\\)\"""".toRegex()