gpt4 book ai didi

regex - 将数字与具有特定要求的正则表达式匹配

转载 作者:行者123 更新时间:2023-12-04 08:24:06 25 4
gpt4 key购买 nike

我想将文本中的以下粗体标记数字与数字和文本相匹配。
一些文本 12.444 12444 12'444 123.122 12.1234 12345 1234 12.12 12.1234567 12.242Text
12.242 文本 Text12.242 Text12.242Text
带有点状分隔符的数字应该只有 3 个以下数字。如果数字有更多位数,则应忽略。数字应作为一个整体匹配。 12.34567 不应与 34567 匹配。
数字应该作为一个整体匹配,以便我以后可以将“从 12.123 56.789 ”与 2 个组匹配
第 1 组:12.123
第 2 组:56.786
我从以下不符合需求的正则表达式开始:

[?<!\d][0-9]{1,2}[,|\.][0-9]{3}[?!\d]

最佳答案

您可以使用

(?<!\S)(?:[0-9]{1,2}[,.'][0-9]{3}|[0-9]{3,})(?!\S)
regex demo . 注意 : 如果 1-2 位数字中的小数部分是可选的,则用可选组将其包裹起来, (?:[,.'][0-9]{3})? :
(?<!\S)(?:[0-9]{1,2}(?:[,.'][0-9]{3})?|[0-9]{3,})(?!\S)
细节:
  • (?<!\S) - 左侧空白边界
  • (?: - 非捕获组的开始:
  • [0-9]{1,2} - 一位或两位数字
  • [,.'] - 逗号、点或 '
  • [0-9]{3} - 三位数

  • | - 或者
  • [0-9]{3,} - 三位数或更多位数

  • ) - 群尾
  • (?!\S) - 右侧空白边界
  • 关于regex - 将数字与具有特定要求的正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65355987/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com