请教一个正则表达式

smallfools 2011-08-11 01:03:52
我在vs2008里写了一个很简单的正则表达式:[36]|1[02],测试了一下,可以匹配3、6、10、12,然后,我再把这个正则表达式改了一下,改成[13]|1[02],想让它匹配1、3、10、12,结果只能匹配到1、3,匹配不到10、12。请问,这是为什么?
...全文
54 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
鸭梨山大帝 2011-08-11
  • 打赏
  • 举报
回复
1、3、10、12

其实不是这样看的.
应该是
[1]
[2]
[1][0]
[1][2]

其实 [1][0]里面的1 还是被匹配出来的的.

调试的时候,查看一下匹配出来的数量,就知道了.
诺维斯基 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 smallfools 的回复:]
引用 5 楼 soonfei 的回复:
引用 2 楼 liuchaolin 的回复:
"|"是或的意思

[13]的其中一个1[02]为10,12,然后前边有一个1相同了,所以没有匹配后边的条件

1[02]|[13]
可以这样试试


说的很清楚、如果你写12、10那么它会认为是[13]中的1,你输入10、11应该是不能匹配的。


您的意思是:
如果写12或10时,……
[/Quote]

对,它只是匹配了一个1,0和2是没有匹配到的。
smallfools 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 soonfei 的回复:]
引用 2 楼 liuchaolin 的回复:
"|"是或的意思

[13]的其中一个1[02]为10,12,然后前边有一个1相同了,所以没有匹配后边的条件

1[02]|[13]
可以这样试试


说的很清楚、如果你写12、10那么它会认为是[13]中的1,你输入10、11应该是不能匹配的。
[/Quote]

您的意思是:
如果写12或10时,它只匹配[13],而不去匹配1[02]了?
md5e 2011-08-11
  • 打赏
  • 举报
回复
逻辑优先的问题
诺维斯基 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liuchaolin 的回复:]
"|"是或的意思

[13]的其中一个1[02]为10,12,然后前边有一个1相同了,所以没有匹配后边的条件

1[02]|[13]
可以这样试试
[/Quote]

说的很清楚、如果你写12、10那么它会认为是[13]中的1,你输入10、11应该是不能匹配的。
smallfools 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liuchaolin 的回复:]
"|"是或的意思

[13]的其中一个1[02]为10,12,然后前边有一个1相同了,所以没有匹配后边的条件

1[02]|[13]
可以这样试试
[/Quote]

谢谢你,我只是想知道为什么[13]|1[02]就不能匹配10和12,这让人太奇怪了,按理说,应该是输入完毕后才去匹配的啊,怎么会输入1后就直接匹配呢?就算输入1后直接匹配,后面的不去匹配的话,那应该是无论我输入10还是11,都能匹配成功,而不是匹配不成功才对的啊。
ajaxtop 2011-08-11
  • 打赏
  • 举报
回复
帮顶下
md5e 2011-08-11
  • 打赏
  • 举报
回复
"|"是或的意思

[13]的其中一个1[02]为10,12,然后前边有一个1相同了,所以没有匹配后边的条件

1[02]|[13]
可以这样试试
  • 打赏
  • 举报
回复
我也想知道。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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