正则表达式匹配以&#34开头的字符串; Mozilla / 5.0(iP"(不是所有字母数字字符)

时间:2016-03-22 11:43:37

标签: regex

有人可以帮我找出正则表达式来匹配以Mozilla/5.0 (iP开头的字符串吗?最终目标是匹配从上面开始到以" 30"。

结尾的字符串

对于第一位,我最初的反应是尝试引号,即:

^"Mozilla/5.0 (iP"

但显然这在语法上是不正确的。所以我尝试了转义字符,如下所示:

^Mozilla\/5\.0 \(iP

但显然也是无效的语法。有什么想法吗?

我对最终注册表(包括结束匹配位)的方法是,假设"字符串的转义版本以&#34开头;这是正确的(这看起来是否正确?):

^Mozilla\/5\.0 \(iP.*30$

谢谢!

萨姆

2 个答案:

答案 0 :(得分:1)

您可以尝试使用PCRE风味

Mozilla\/5.0 \(iP ([\d]{0,3}[\.]{1}){3}30\)

匹配

Mozilla/5.0 (iP 127.0.0.30)
Mozilla/5.0 (iP 174.66.34.30)

警告!它还会匹配无效的IP范围,例如:

Mozilla/5.0 (iP 256.256.256.30) 
Mozilla/5.0 (iP 567.556.856.30) 

但是,如果您要这样做,您可以确保它们自己处于有效范围内。

它不匹配任何不以30结尾的东西。

See here为自己测试一下。

答案 1 :(得分:0)

该解决方案原来是我发布的最后一个正则表达式:.Sum()。我正在使用的工具是在我输入时添加空字符,但一旦修复了上面的工作。