正则如何得出匹配结果的顺序[已解决]
本帖最后由 heroxianf 于 2016-10-28 12:39 编辑示例:
我要苹果7、今天要去美国一定要买到。
正则
我|美国|苹果7
我要如何处理才能得到匹配的结果是 我——美国——苹果7
明确的知道我 排第一、美国 排第二、苹果7 并没有排第三 匹配了再用stringformat处理一下 又要匹配,又要重新排序,没有通用性吧.Local $str = '我要苹果7、今天要去美国一定要买到。'
$sRe = StringRegExpReplace($str, '.*(我).*(苹果7).*(美国).*', '\1--\3--\2')
MsgBox(0, '', $sRe) 回复 3# Alam
也许是我表达的不清楚,我最终是想知道这句里 苹果7、我、美国 在整句里的位置,不是重新排列它们。
对于这句话(我在美国前面、美国在苹果7前面 条件符合)
我去美国买苹果7. 这句是我想要的结果。
我要苹果7、今天要去美国一定要买到。这句就不是。 .*(我).*(美国).*(苹果7).*
匹配了那就是你想的結果,不匹配了,那這句自然也就不是你想要的啊.三樓說的沒錯呀 回复 5# tubaba
回来运行了一下,确实有点像,在仔细推敲一下。谢谢 If StringRegExp($aStr[$i], '我.*?美国.*?苹果7') Then MsgBox(0, 0,True) 回复 7# haijie1223
谢谢海大,就是这个意思。Alam兄的还没搞明白什么原理{:face (197):} 回复 8# heroxianf
...............无语
你的要求是作"判断",而不是作"匹配"或"得出" 回复 9# Alam
你的用起来可以灵活设置关键词,就是没怎么明白原理。谢谢了哈
页:
[1]