【问题标题】:RegEx to return first twelve of last thirteen digits?正则表达式返回最后十三位的前十二位?
【发布时间】:2013-04-03 19:32:14
【问题描述】:

我正在处理这个正则表达式,但它没有按我预期的那样运行。到目前为止,这是我的正则表达式——.{12}(?=.)$|(^.{1,12}$)

上半场,.{12}(?=.)$ 是我卡住的地方。我正在尝试匹配输入字符串中最后 13 个字符中的前 12 个字符。

示例:
1234567890123 --> 123456789012
123456789012345 --> 345678901234
12345678901234567890 --> 890123456789

我的前瞻似乎失败了。使用 q(?=w) 之类的演示可以正确匹配 q 后跟 w,但我无法让它在我的特定实例中工作。

谢谢!

【问题讨论】:

  • 你用的是什么正则表达式?
  • 你不能简单地使用分组吗?编辑:正如 Marc B 提出的那样
  • @fardjad - 我正在用 Javascript (regexpal.com) 对其进行测试,但它实际上会在 .Net 环境中运行。我应该提到这一点。对不起!

标签: .net regex grouping lookahead


【解决方案1】:

前瞻是零宽度,所以(?=.)$ 是矛盾的

.{12}(?=.$)|^.{1,12}$

【讨论】:

  • 我也一直想知道他们所说的零宽度是什么意思。再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 2010-11-01
相关资源
最近更新 更多