java - 如何使字符串在数字之间包含 ':' 仅避免在任何字符 java 之前或之后的 ':'?

标签 java android regex string

我想用 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+)*

RegEx Demo

替换为:

"<b>$0</b>"

请注意,这将匹配带有多个点的数字,例如 83.46433.135

如果你想消除它,那么使用:

\\d+(?:\\.\\d+|(?::\\d+)+)?

RegEx Demo 2

关于java - 如何使字符串在数字之间包含 ':' 仅避免在任何字符 java 之前或之后的 ':'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66740361/

相关文章:

java - 如何避免嵌套的 ActionListeners?

java - 项目未填满空间

java - 当你增加一个整数超过它的最大值时会发生什么?

Java程序接受输入两次

java - 从类扩展线程传递上下文

python - 使用正则表达式从字符串中删除数字

javascript - 新的正则表达式不起作用

android - 带有自定义图像的 ionic ionic 选项卡图标

android - 如何获取 Activity 历史堆栈的列表?

regex - 使用 TextInput 的 IP 地址掩码