日期:2014-05-17  浏览次数:20622 次

正则表达式“无序”匹配“多个”字符串,能否实现?谢谢~
我要在N条记录中选取符合条件的记录。想用正则匹配的方式来进行过滤

今天看了一天正则表达式的教程,感觉自己实现起来还是有些困难。固想大家求思路。

有这样的字符串:(4条记录)
1."Kingdoms/1.0 PlusPlus/2.2.3 iPhone OS/3.0"
2."iPhone Mail (7E18)"
3.iphone os mac safari
4."Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16 Cydia/1.0.3044-65"

我想通过正则匹配方式得到第四条记录。
条件是:在字符串中包含:“iphone、Mac、OS、safari”这四个关键字同时存在时(最好是不按顺序排列),则匹配成功。


请问如何用一条正则实现。

PS:用iphone|Mac|OS|safari这种方式的话会将其他记录也匹配进来。

如果不能实现,看来我只能拆分字符串来实现了~

------解决方案--------------------
坐SF看看高手
------解决方案--------------------
4条记录是4个字符串?
------解决方案--------------------
一个字符串有那4个词,可以用IndexOf()判断啊!4个同时>= 0
------解决方案--------------------
探讨
引用:
一个字符串有那4个词,可以用IndexOf()判断啊!4个同时>= 0


这个我考虑过,但是记录太多。我怕效率不高,所以想通过正则来实现。

------解决方案--------------------
正则的效率实际上是比较低的,一般说来其效率不如 IndexOf(),LZ可以自己测试一下。

正则的优点是在不十分追求效率的应用场合可以写出比较简短的代码,如果对效率要求比较高,建议不要使用正则。
------解决方案--------------------
探讨
正则的效率实际上是比较低的,一般说来其效率不如 IndexOf(),LZ可以自己测试一下。

正则的优点是在不十分追求效率的应用场合可以写出比较简短的代码,如果对效率要求比较高,建议不要使用正则。