我有一个在http://gskinner.com/RegExr/上测试过的正则表达式,它可以工作,但是当我在C#应用程序中使用它时,它失败了。
我的正则表达式:(?<!\d)\d{6}\K\d+(?=\d{4}(?!\d))
文本:4000751111115425结果:111111
我的正则表达式有什么问题?
您遇到的问题是.NET正则表达式不支持\K“丢弃到目前为止已匹配的内容”。
我相信您的正则表达式翻译为“将超过十\d位数的任何字符串匹配到尽可能多的位数,并丢弃前6个和后4个”。
我相信符合.NET的正则表达式
(?<=\d{6})\d+(?=\d{4})
Run Code Online (Sandbox Code Playgroud)
实现相同的目的。请注意,由于贪婪,\d没有必要在负数前/后再反向\d+-引擎已经尝试匹配尽可能多的数字。
| 归档时间: |
|
| 查看次数: |
1653 次 |
| 最近记录: |