找回密码
 加入
搜索
查看: 1310|回复: 6

请问这个正则表达式如何匹配

[复制链接]
发表于 2010-1-18 17:17:25 | 显示全部楼层 |阅读模式
本帖最后由 316428696 于 2010-1-22 23:51 编辑

{"responseData": {"translatedText":"红色"}, "responseDetails": null, "responseStatus": 200}

我想得到红色这两个字,正则不晓得如何写!就是取translatedText":"红色"}中引号之间的值!
发表于 2010-1-18 17:24:31 | 显示全部楼层
这个稍微看下正则的帮助就能写啊。。
如果就简单的取translatedText":"红色"}引号里的内容,甚至不用正则单用字符串一般处理都可以提取出来。。
发表于 2010-1-18 17:30:40 | 显示全部楼层
StringRegExp($str, 'translatedText":"([^"]+)"', 3)
发表于 2010-1-19 13:44:22 | 显示全部楼层
不用正则
$data = '{"responseData": {"translatedText":"红色"}, "responseDetails": null, "responseStatus": 200}
'
$a = 'translatedText":"'
$b = '"}, "responseDetails'

$start = StringInStr ($data, $a,0,$c,$s)+StringLen ($a);查找$a的结束位置
$end = StringInStr ($data,$b,0,1,$start);从$a的结束位置开始查找$b的位置
$amount = $end - $start;获得中间部分字符的数量
$txt=StringMid ($data, $start, $amount);得到中间部分的字符

评分

参与人数 1贡献 +5 收起 理由
316428696 + 5

查看全部评分

发表于 2010-1-19 13:45:05 | 显示全部楼层
楼上的原理可以用到很多很多这样的字符获取的地方,对于不会正则的网友很有用的啊。
 楼主| 发表于 2010-1-21 12:17:13 | 显示全部楼层
我已经解决了,用的截取字符串的方式!还是非常谢谢各位!
 楼主| 发表于 2010-1-21 12:18:39 | 显示全部楼层
; 截取结果
        ;$Istart          = StringInStr($OutText,'":"',2) ;34 start
        ;$Iend                 = StringInStr($OutText,'"}, ',2) ;40 end
        ;$OutText    = StringMid($OutText,$Istart + 3,$Iend-($Istart+3)) ;截取
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2025-1-12 07:42 , Processed in 0.070978 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表