【问题标题】:Regex help! Need to strip down a string to digits-only正则表达式帮助!需要将字符串剥离为仅数字
【发布时间】:2019-01-08 11:46:48
【问题描述】:

假设我有字符串 ">=3.0.0"。正则表达式:[^\D](\S+\d+) 有助于将其剥离到 3.0.0 (https://regex101.com/r/XUxyEM/1)。但是当我有字符串 ">=6" 正则表达式 [^\D](\S+\d+) 将返回一个空结果 (https://regex101.com/r/XUxyEM/2) 而我想要 6 作为结果。如何更改我的正则表达式,使其适用于两种情况。抱歉,我是个正则表达式新手。

【问题讨论】:

  • 试试\D*(\d[\d.]*),见this demo。或者只是\d[\d.]*$,见this one
  • 是的,谢谢@WiktorStribiżew
  • 单词边界重要吗?你需要对正则表达式充满信心,以免意外匹配

标签: regex


【解决方案1】:

如果您想捕获数字后跟任意数量的数字和任意数量的非数字之后的点,请使用

\D*(\d[\d.]*)

regex demo

以下正则表达式

\d[\d.]*$

将匹配一个数字,该数字后跟 0+ 数字和/或字符串末尾的点。见another demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    相关资源
    最近更新 更多