仅在字符串中替换行号 (1. & 2.) 的正则表达式

Regex for replacing Row numbers (1. & 2.) only in string

在我的一个场景中,我想替换下面提到的特定字符串。

String S1 = "1.This is example of regex and call the mobile 400-199-1234.This statement is valid.2.This is second example of regex.10.This is tenth statement";

在上面的字符串中,我想用空值替换 1.2.10.(仅)。

字符串应该是这样的

String S1 = "This is example of regex and call the mobile 400-199-1234.This statement is valid. This is second example of regex.This is tenth statement";

我试过使用下面的正则表达式 - "[0-9]\."

我的代码如下:S1=S1.replaceAll("[0-9]\.","")

它会替换所有值,包括手机号码,字符串如下所示:

String S1 = "This is example of regex and call the mobile 400-199-123This statement is valid. This is second example of regex.This is tenth statement";

有人可以帮助使用正则表达式吗?

如果您确定要删除的号码前不应该有连字符,您可以使用左侧带有单词边界的回顾:

S1 = S1.replaceAll("\b(?<!-)\d+\.", "");

regex demo\b(?<!-) 部分确保在删除的数字之前没有单词和 - 字符。

如果后面可以有带连字符的有效数字,请在 - 之前添加一个 \d 模式:

S1 = S1.replaceAll("\b(?<!\d-)\d+\.", "");

确保数字后的数字不匹配 + - char.