Java正则表达式查找其中没有句点的数字

标签 java regex

我正在研究基本上是一个 IP 检测器正则表达式。

基本上,我想删除所有不含句点的数字。

例如,以下是一些示例输入:

1          >Matches
12         >Matches
134        >Matches
156        >Matches
1567       >Matches
1.99       >No Match
.100       >Don't care
1.2.3.4    >No Match
.1.2.3.4   >No Match

这用于删除所有匹配项。匹配项之间用空格分隔。例如,如果我输入字符串:

"14. 24. asf.d 7 .12 .498 .s g 14091 87.49 .sdf.gs.df 12874 ds.fgs 9.127.41 sd.fg 92.47 sd.fg 892.14 sd.fg .79 12 s.df 47 8 .sdfg 1.9 sdfg 2.4 71. s9 24 .ds.f.g 71.9 8 s.df 4 .g 7 132. .sdfg 4 s.dfg"

我可能会返回类似于字符串的内容:

"asf.d .s g 87.49 .sdf.gs.df ds.fgs 9.127.41 sd.fg 92.47 sd.fg 892.14 sd.fg s.df .sdfg 1.9 sdfg 2.4 s .ds.f.g 71.9 s.df .g  .sdfg s.dfg"

我已经做到了:

([0-9]+)(?=)

但我不知道如何让正则表达式忽略数字(如果它们中有句点)(实际上,我不知道如何让它首先选择数字,即使它们有句点!)

最佳答案

您可以尝试这个正则表达式:

"(?<![0-9.])[0-9]+(?![0-9.])"

说明:

  • (?<![0-9.]) :消极地向后看。前一个字符不是 0-9 或点。
  • [0-9]+ :0-9中的一位或多位数字。
  • (?![0-9.]) : 消极展望。下一个字符不是 0-9 或点。

关于Java正则表达式查找其中没有句点的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11590370/

相关文章:

php - 从 PHP 中的字符串中提取数字(不是数字)

regex - 为什么正则表达式在 Karate 框架中不起作用?

python - 使用捕获组提取字符串(使用 re.match)

java - ConcurrentModificationException 的这种解决方案安全吗?

正则表达式,选择以我的条件开头的行,但只取空格后的字符

regex - 与 $ 元字符相关的 "string-ending newline"是什么?

java - 如何根据对象变量值的独特性将对象排序/分组到列表中?

在 Mac 上进行 Java 编程?

java - 如何在 Java 中优雅地处理 null

java - 在 NetBeans 中运行 Maven 目标的按钮