大家帮忙看正则表达式
[-]?[.]?+[.]?*程序见下载
这是字符串匹配模式函数的正则表达式,但看不太懂。为什么输入字符串为342.231输出为342.231。要是我照上面表达式读,应该是
342和.231。我认为的原因是运行[-]?[.]?,无-,无.得到3,再运行+[.]?*,无.有42,到.停止。(*表示所有紧挨的0-9的字符串)得到42,所以合起来为342。
然后第二次从.开始运行,[-]?[.]?得到.2,再运行+[.]?*,得到31。
所以342.231分成两个字符串显示。请问大家我怎么错了 貌似不是这样的咯~~~~
+这个部分的意思呢,就是取连续的数字,所以,和这一部分匹配的就是342
和[.]?匹配的当然就是.了
而和*匹配的在你的这个实例当中,就是231
所以,和全体regular string匹配的就是342.231了,这个regular string的意思呢,就是取出一个数字,这个数字可以是-开头的,可以是小数,哈,只要是数字就可以。。。。
PS:这个regular string的应用我以前也没怎么看懂,但我觉得这个vi里的说明很详细啊,哈,谢了
在PS:这个vi里,后续的对空白元素的处理,实在是牛,我以前怎么没想到呢,呵呵,不匹配输出empty string原来可以这样解决,明白咯~~~~~ 貌似上面没说清楚。。。。。
+中的这个+,是取所有满足的最大可能的,还是把help里这话贴出来比较清楚些:
Matches the longest number of instances of the expression preceding +; there must be at least one instance to constitute a match. For example, be+t matches bet and beet but not bt.
满足最大数目的instance,并且至少有一个instance得到满足?嘿,翻译的好差。。。。丢脸了 加我QQ:122205874,我也想学学
页:
[1]