wugecat 发表于 2010-1-15 15:35:45

这样情况如何用正则表达式匹配出字符串??(已解决)

例如:(2313.456+2235235)/(124214+346)*销售金额*2234/345345   我想分别匹配出,数字(包裹小数点),括号,操作符,以及文字,其中数字和文字是可变的.也就是说我想匹配到"(", "2313.456","+" ,"2235235", ")", "/"............

谢谢..请大家帮忙解决一下

[ 本帖最后由 wugecat 于 2010-1-18 10:47 编辑 ]

wugecat 发表于 2010-1-15 17:37:28

up

wugecat 发表于 2010-1-18 10:47:39

解决了....自己动手丰衣足食:victory:
分享一下
str="((2313.456+2235235)/(124214+346)*销售金额-2234/345>34<5"
RegExpTest"[\(\)\+\*\/\-<>]|([^\(\)\+\*\/\-<>]*[^\(\)\+\*\/\-<>])",str

Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches      ' Create variable.
Set regEx = New RegExp         ' Create a regular expression.
regEx.Pattern = patrn         ' Set pattern.
regEx.IgnoreCase = True         ' Set case insensitivity.
regEx.Global = True         ' Set global applicability.
Set Matches = regEx.Execute(strng)   ' Execute search.
For Each Match in Matches      ' Iterate Matches collection.
      msgbox Match.value'&" "&Match.firstindex
Next
RegExpTest = RetStr
End Function

风雪夜归人 发表于 2010-1-18 11:54:54

哈哈,lz一定吃胖了。。学习学习。。

风雪夜归人 发表于 2010-1-18 13:21:28

RegExpTest "[\(\)\+/\*\-<>]|(\d+\.\d+)|(\d+)|([\u4e00-\u9fa5]+)", str

终于找到怎么匹配汉字的方法了。。哈哈

[ 本帖最后由 风雪夜归人 于 2010-1-18 13:36 编辑 ]

wugecat 发表于 2010-1-18 17:17:45

哦,还能这样做啊,你如果早点回帖我就不用研究了:L 浪费了3000脑细胞

风雪夜归人 发表于 2010-1-18 23:32:51

我早上才看到,但是觉得你的方法复杂了,又不知道怎么匹配汉字。。郁闷,也浪费了我很多脑花呢
页: [1]
查看完整版本: 这样情况如何用正则表达式匹配出字符串??(已解决)