找回密码
 加入
搜索
查看: 1831|回复: 7

[系统综合] 正则表达式里单双引号同时存在的情况下如何转换?[已解决]

[复制链接]
发表于 2017-10-15 09:57:16 | 显示全部楼层 |阅读模式
本帖最后由 cashiba 于 2017-10-15 12:35 编辑
<div class="box1">
            <div class="mobile-name">
            <a target="_blank" href='ref/html/18173.shtml'>
                   
                            一加手机5
                   
                   
                     - 深圳市万普拉斯科技有限公司
                   
            </a>
            </div>
            <div class="infomation clearfix">
                   
                   
                <div class="infomation-right clearfix"><label class="left">【基本参数】</label><label class="info-width1 left"> 手机类型 </label></div>
                   
            </div>
            
                    <div class="infomation clearfix"><label class="left">【屏幕】</label><label class="info-width2 left">电容屏,多点触控。</label>
                    </div>
            
            
            
            
                    <div class="infomation clearfix"><label class="left">【摄像头】</label><label class="info-width3 left"> 双核对焦,EIS 电子防抖,PDAF相位对焦,人像模式,专业模式,全景模式,像素精选,HDR,RAW Image,屏幕补光,微笑快门,极致美颜。</label></div>
            
            
            
        </div>


如上目标文本。
欲提取其中的如下之标红部分:
<a target="_blank" href='ref/html/18173.shtml'>
                   
                            一加手机5
                   
                   
                     - 深圳市万普拉斯科技有限公司

                   
            </a>

如下正则语式:
<div class="mobile-name">.*?<a target="_blank" href='(.*?)'>(.*?)</a>

在其它正则测试工具里运行结果正常。但是用AU3的 StringRegExp测试没有反应.
怀疑是正则表达式里同时存在单双引号造成了干扰。对AU3的单双引号混合的转换一直晕头.....不知道是不是这个缘故。
请大虾们赐教.....
发表于 2017-10-15 11:24:19 | 显示全部楼层
本帖最后由 yamakawa 于 2017-10-15 11:32 编辑

回复 1# cashiba


    仅针对你的例子
(?sim)mobile-name.+href='(\V+)'>(.+)</a>
发表于 2017-10-15 11:40:01 | 显示全部楼层
回复 1# cashiba


    哦哦。。你想要单双引号都有的啊。。加上就是了
(?s)<div class="mobile-name">.*href='(\V+)'>(.+)</a>

评分

参与人数 1金钱 +20 收起 理由
cashiba + 20 谢谢~

查看全部评分

 楼主| 发表于 2017-10-15 11:49:08 | 显示全部楼层
本帖最后由 cashiba 于 2017-10-15 11:55 编辑

回复 2# yamakawa
谢谢~
因为假如目标文件里同时还存在
<div class="box1">
            <div class="aaa">
            <a target="_blank" href='xxx'>

<div class="box2">
            <div class="bbb">
            <a target="_blank" href='YYY'>

<div class="box3">
            <div class="ccc">
            <a target='_parent' href='zzz'>

之类的代码的话,单或双引号内的文字甚至单双引号本身可能会作为正则表达式里的特征或标志性字眼.....
也就是如果需要单双引号同时都存在的情况下,怎样写正则表达式才能得到正常结果呢?
AU3的正则表达式里一定要避开单双引号混合的情况吗?
 楼主| 发表于 2017-10-15 12:00:46 | 显示全部楼层
回复  cashiba
哦哦。。你想要单双引号都有的啊。。加上就是了
yamakawa 发表于 2017-10-15 11:40

问题就在这里阿,这个正则表达式如果要写到代码里
$pattern=(?s)<div class="mobile-name">.*href='(\V+)'>(.+)</a>

$pattern=的后面要怎么转换?
 楼主| 发表于 2017-10-15 12:22:49 | 显示全部楼层
在测试工具里都可以得到结果,就是写进代码里就出错,不知道怎么转换的....
发表于 2017-10-15 12:30:00 | 显示全部楼层
回复 5# cashiba

这样试试
$pattern='(?s)<div class="mobile-name">' & '.*href='& "'(\V+)'>(.+)</a>"
 楼主| 发表于 2017-10-15 12:34:54 | 显示全部楼层
自己解决了....
(?s)<div class='&'"mobile-name"'&">.*href='(\V+)'>(.+)</a>"
本帖谢谢yamakawa大侠指点哈~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-24 07:03 , Processed in 0.082916 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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