正则问题请教 限制字符长度与最小匹配

pztx1992 2008-11-18 04:00:09
如何限制字符串长度为100 .(1,100) 中从头匹配到最先出现的abc


csdn.{1,100}abc 这是最大匹配(1-100个字符串中,我需要最小的)
...全文
1178 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmbxskdy 2008-11-21
  • 打赏
  • 举报
回复
学习到了
-过客- 2008-11-21
  • 打赏
  • 举报
回复
呵呵,客气

主要是这种应用场景很少,所以很容易被忽略
其实想想,?等同于{0,1},*等同于{0,},+等同于{1,},既然可以有??,*?,+?,当然也可以有{m,n}?这种非贪婪匹配模式了


0009是这方面的高手,而且实际经验很丰富,不过好像在WEB那边呆的多些
止戈而立 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lxcnn 的回复:]
呵呵,止戈的进步还真快


C# code//很多人都忽略了这样一种非贪婪匹配模式
csdn.{1,100}?abc



当然,这两种写法孰优孰劣,还要看具体应用的
[/Quote]

还有这样写的啊?还真是第一次见。。

还得向过客兄多多学习。。
-过客- 2008-11-21
  • 打赏
  • 举报
回复
呵呵,止戈的进步还真快

//很多人都忽略了这样一种非贪婪匹配模式
csdn.{1,100}?abc


当然,这两种写法孰优孰劣,还要看具体应用的
止戈而立 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 pztx1992 的回复:]
csdn.{1,100}abc 考虑过

比如说字符串为 csdnfddabckjdsfjabc 他会匹配所有 而不是csdnfddabc
[/Quote]

刚回过头看了一下,写成下面这样就可以了:

csdn((?!abc).){1,100}abc
pztx1992 2008-11-21
  • 打赏
  • 举报
回复
csdn.{1,100}abc 考虑过

比如说字符串为 csdnfddabckjdsfjabc 他会匹配所有 而不是csdnfddabc
止戈而立 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 0009 的回复:]

第二句话让我晕过去好几回。

可能是工作一天累了
[/Quote]

同感。。

建议LZ匹配两次。。。
先用:
csdn.*?abc

再用
csdn.{1,100}abc

或者就判断第一次匹配的长度就行了,如果长度大于107的就舍弃。。
RexZheng 2008-11-18
  • 打赏
  • 举报
回复

第二句话让我晕过去好几回。

可能是工作一天累了
CCjian 2008-11-18
  • 打赏
  • 举报
回复
理解力差,,没看懂...
simen_frankly 2008-11-18
  • 打赏
  • 举报
回复
正在学习中~~
给你推荐一个好工具The Regulator 2.0,写正则很好用啊
sunshine_anycall 2008-11-18
  • 打赏
  • 举报
回复
up

110,544

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧