这很简单,但我仍然难以确定我的答案是否正确。正则表达式匹配连字号的范围
我想匹配以下格式的字符串:
- 70-60
- 50-40
- 100-90
- 等.....
我今天才开始学习正则表达式,并且我制定了以下模式来匹配字符串:
/^[0-9]+-[0-9]+/$
但是,在一个在线正则表达式测试工具中测试它后,我发现它不匹配。
任何能帮助我的指针?提前致谢。
这很简单,但我仍然难以确定我的答案是否正确。正则表达式匹配连字号的范围
我想匹配以下格式的字符串:
我今天才开始学习正则表达式,并且我制定了以下模式来匹配字符串:
/^[0-9]+-[0-9]+/$
但是,在一个在线正则表达式测试工具中测试它后,我发现它不匹配。
任何能帮助我的指针?提前致谢。
工作了最后表达... !!!
/[\d]+:?[\d]*/
这将检查以下每个
100:90
90:70
谢谢大家对u'r宝贵意见......
它也会匹配'100:' - 那是你想要的吗?通常情况下,人们只有在后面有东西时才想匹配分隔符:'/ \ d +(?:: \ d +)?/' – 2009-11-06 13:41:23
正则表达式(PHP/Perl的语法类似:
m/^[\d]+\s*-\s*[\d]+$/m
测试:
70-60
50-40
100 -90
所有三个测试字符串匹配
注意尾部m
使这是一个多行匹配(导致m
使这是一个匹配的正则表达式不是替代正则表达式)。如果你把所有的测试数据都放在测试区域,并且不使用多行匹配,它就不会匹配(它可能会匹配第一个......),因为它试图匹配整个输入(^到$ ),但该正则表达式只会匹配每一行。将测试数据更改为只有一个(70-60
),它的工作原理没有m
。
^[\d]+-[\d]+$
以及其他一些答案适用于您的测试数据IF,您检查^ $匹配换行符。
/^[\d]+-[\d]+$/m
然后将你应该使用
是你想要匹配唯一文本的文本,还是它在一些其他字符串 - 它具有consequ为你的正则表达式。 – 2009-11-06 07:34:18