【问题标题】:Regular expression to extract substring of digits between markers正则表达式提取标记之间的数字子串
【发布时间】:2012-09-02 19:22:53
【问题描述】:

我想提取 a 之间倒数第二个最右边的 6 位数字;和 ?从一个字符串。下面是一些例子:

;10001080812?    --> 108081

;0009242340?     --> 924234

请注意“倒数第二个”,因为不需要最后一个数字。
如果可以轻松更改我想提取的位数,那就太好了。

这是我到目前为止所得到的,它得到了我不包括最后一个数字的数字

/(?<=\;)(.*?)(?=\d\?)/

但我真正想要的是最右边的 6 位数字(或 X 位数字)。

【问题讨论】:

  • ;? 之间是否只有数字?
  • C# 是的,数字只能在 ;和?

标签: regex


【解决方案1】:

试试这个正则表达式

\d{6}(?=\d\?)

【讨论】:

    【解决方案2】:

    ^;[0-9]*[0-9]{n}[0-9]{m}\?$

    上面的正则表达式读取n 数字,但在末尾留下m 数字(不会被读取)。

    【讨论】:

      猜你喜欢
      • 2021-01-09
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多