【问题标题】:Match until the next (and not the last) space after a specific pattern匹配到特定模式之后的下一个(而不是最后一个)空格
【发布时间】:2014-02-03 19:58:03
【问题描述】:

考虑以下字符串

"Nr.: &N|1|2|3|4|5|6|7 / 8|9|10|11|12 / 2014"

我想得到以下匹配:

"&N|1|2|3|4|5|6|7 / 8|9|10|11|12 "

虽然正则表达式模式&N\|(.*|$)\s 匹配:

"&N|1|2|3|4|5|6|7 / 8|9|10|11|12 / "

但在最后一条垂直线之后,我只想匹配到 next 而不是 last 空格。

有什么想法可以解决这个问题吗?

【问题讨论】:

  • 匹配方式有很多种,包括&[^/]*/[^/]*。但是您希望正则表达式有多严格?

标签: .net regex


【解决方案1】:

有很多方法可以做到这一点。我的个人创作:

&.*\|[^ ]*

【讨论】:

  • 编辑为 &N.*\|[^ ]* 后,完全符合我的标准,非常感谢!
【解决方案2】:

如果总是有一个空格和一个斜线,一个空格和一个年份,你可以这样做:

&N\|(.*|$)\/

比赛将是:

"1|2|3|4|5|6|7 / 8|9|10|11|12 "

See it in action

【讨论】:

  • 我不能依赖斜线,所以 Vasili 的回答做到了。还是谢谢!
【解决方案3】:

您可以通过多种方式实现这一目标。

&[^&]*(?=/)

Live demo

【讨论】:

  • 我不能依赖斜线,所以 Vasili 的回答做到了。还是谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多