我想用 SpannableString java 突出显示一个字符串
我有以下字符串
textString = "2021-01-26 19:23:18 Lat: 26.369919 Long: 83.46433";
由此,我可以使用带有十进制数字的正则表达式突出显示字符串
Pattern regex = Pattern.compile("(\\d+(?:\\.\\d+)?)");
像这样
textString = "2021-01-26 19:23: 18 纬度:26.369919 经度:83.46433";
但现在我想使 s String 也包含数字之间的“:”,并且希望避免在任何非数字字符之前或之后使用“:”
我想产生这样的输出
textString = "2021-01-26 19:23:18 纬度:26.369919 长:83.46433”;
最佳答案
只需将 :
包含在可选的非捕获组中的字符类中,并使非捕获组匹配 0 次或多次:
\\d+(?:[:.]\\d+)*
替换为:
"<b>$0</b>"
请注意,这将匹配带有多个点的数字,例如 83.46433.135
。
如果你想消除它,那么使用:
\\d+(?:\\.\\d+|(?::\\d+)+)?
关于java - 如何使字符串在数字之间包含 ':' 仅避免在任何字符 java 之前或之后的 ':'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66740361/