【发布时间】:2019-01-18 10:07:16
【问题描述】:
我正在尝试在 Kotlin 中为我的 android 应用程序实现正则表达式。 我使用的正则表达式是:https://regexr.com/46ljf
尝试1:
val myRegex= """/()\\mCi=[0-9]*/g"""
val regex = sb.toString().toRegex()
var res= regex.find(value.toString())!!
if(res!= null) {
Log.d("###regex", res.value)
}
尝试2:
val sb = StringBuilder()
sb.append("/()")
sb.append("\\")
sb.append("mCi=[0-9]*/g")
val regex = sb.toString().toRegex()
var res= regex.find(value.toString())!!
if(res!= null) {
Log.d("###regex", res.value)
}
在这种情况下,我的正则表达式字符串没问题,但错误是:
“索引 5 附近模式中无法识别的反斜杠转义序列”
我也在尝试其他事情,但没有运气。
【问题讨论】:
-
您的期望是什么?返回单个结果,
mCi=268435455? -
你为什么使用 JavaScript 风格的正则表达式?去掉开头的
/和结尾的/g,如果期望匹配组,需要移动括号 -
另外,你的正则表达式有一个空的捕获组,需要
\\mCi=1234来匹配——原始字符串反斜杠只是``