正则表达式“无序”匹配“多个”字符串,能否实现?谢谢~

IMAGSE 2010-04-15 05:30:46
我要在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这种方式的话会将其他记录也匹配进来。

如果不能实现,看来我只能拆分字符串来实现了~
...全文
1389 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gsfhehe 2012-11-28
  • 打赏
  • 举报
回复
楼主这个问题解决没?我也遇到了类似的问题 ,求解答!
厦门德仔 2012-09-29
  • 打赏
  • 举报
回复
我的解决方案:
http://blog.csdn.net/david_520042/article/details/8031987
IMAGSE 2010-04-15
  • 打赏
  • 举报
回复
感谢7、8楼的朋友的回答,通过你们的解释,我对正则有了新的认识。谢谢! 结贴去!
Peter200694013 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wuyi8808 的回复:]
正则的效率实际上是比较低的,一般说来其效率不如 IndexOf(),LZ可以自己测试一下。

正则的优点是在不十分追求效率的应用场合可以写出比较简短的代码,如果对效率要求比较高,建议不要使用正则。
[/Quote]
嗯,还是用IndexOf吧
wuyi8808 2010-04-15
  • 打赏
  • 举报
回复
正则的效率实际上是比较低的,一般说来其效率不如 IndexOf(),LZ可以自己测试一下。

正则的优点是在不十分追求效率的应用场合可以写出比较简短的代码,如果对效率要求比较高,建议不要使用正则。
Peter200694013 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 imagse 的回复:]
引用 3 楼 peter200694013 的回复:
一个字符串有那4个词,可以用IndexOf()判断啊!4个同时>= 0


这个我考虑过,但是记录太多。我怕效率不高,所以想通过正则来实现。
[/Quote]
效率不会有多大影响吧。用正则的话,可以分别用每个词匹配,都满足才取数据,但是这样就和IndexOf类似了。(匹配4个的,不考虑顺序的正则不会写...写的话也是4个词全排列,这样更麻烦了)
IMAGSE 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 peter200694013 的回复:]
一个字符串有那4个词,可以用IndexOf()判断啊!4个同时>= 0
[/Quote]

这个我考虑过,但是记录太多。我怕效率不高,所以想通过正则来实现。
IMAGSE 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 peter200694013 的回复:]
4条记录是4个字符串?
[/Quote]

是的,这只是我举的例子,每个字符串是一个记录,从N条记录中筛选出符合条件的记录。
Peter200694013 2010-04-15
  • 打赏
  • 举报
回复
一个字符串有那4个词,可以用IndexOf()判断啊!4个同时>= 0
Peter200694013 2010-04-15
  • 打赏
  • 举报
回复
4条记录是4个字符串?
凤凰涅檠 2010-04-15
  • 打赏
  • 举报
回复
坐SF看看高手

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧