【问题标题】:Regex to get digits from a string when there is no separator between digits当数字之间没有分隔符时,正则表达式从字符串中获取数字
【发布时间】:2019-06-09 23:00:21
【问题描述】:

我有一个像Acc:123-456-789 这样的字符串和另一个像-1234567 这样的字符串,我需要你的帮助来编写一个表达式来匹配数字,以防数字之间没有分隔符。

-*(?!\d*(?:\d*-)$)\d*$

输入字符串:

Acc:123-456-789   -12323232 7894596

想要的结果:

group 1 12323232 
group 2 7894596

【问题讨论】:

  • 请花 2 分钟学习how to format 的帖子。 * 不是普通字符,所以它弄乱了字符串
  • 也许您只需要^-?[0-9]+$

标签: c# regex


【解决方案1】:

我认为这应该可行:

(?<=^|\s|\s-)(\d+)(?=\s|$)

分解:

  • (?&lt;=^|\s|\s-) - 与字符串、空格或空格后跟 - 的开头匹配的正向回溯。
  • (\d+) - 匹配并捕获数字序列。
  • (?=\s|$) - 匹配空格或字符串结尾的正向前瞻。

** 注意:如果需要捕获负数序列,请将(\d+)替换为(\-?\d+)

Try it online

Regex reference

请记住,在 C# 中使用时,您需要转义反斜杠或将 @ 前缀用于字符串文字 (@" ")。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多