免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: fzc115100
打印 上一主题 下一主题

【求助】关于正则表达式,遇到一个情况,不知道如何匹配该模式,求助大牛~ [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-06-01 14:38 |只看该作者
回复 10# yinyuemi
一定是成对出现的。
谢谢.

还想请教另一个问题,chinaunix回帖怎么重视需要验证码啊?
是否在一定时间或一定回帖数量之后就不在需要了?

每次都这样真的很烦。。。

   

论坛徽章:
0
12 [报告]
发表于 2012-06-01 14:45 |只看该作者
你的发帖量多了就没有这个验证了

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
13 [报告]
发表于 2012-06-01 14:57 |只看该作者
回复 11# fzc115100
  1. s='a,"b,c,d",e,f,"g,h",i'

  2. re.findall("\"[^\"]+\"|[^,]+(?=,)|[^,]+$",s)
  3. ['a', '"b,c,d"', 'e', 'f', '"g,h"', 'i']
复制代码

论坛徽章:
0
14 [报告]
发表于 2012-06-01 15:20 |只看该作者
回复 13# yinyuemi
非常感谢,这里引出另一个问题。
正则表达式里面的“|”的执行顺序:
先执行前面的一项,匹配一圈,然后再匹配后面的那项是这个顺序吗?
因为我改变了一下format:
  1. re.findall("[^,]+(?=,)|\"[^\"]+\"",s)
复制代码
结果就不是那么回事儿了。。。

还想请教另一个问题:
http://bbs.chinaunix.net/thread-3750185-1-1.html

多谢了


   

论坛徽章:
0
15 [报告]
发表于 2012-06-01 15:42 |只看该作者
回复 1# fzc115100

关键的问题就是,出现在两个"中间就不是分隔符,否则是分隔符
正则式肯定可以写,但可能比较费事
遇到这种问题我都是用一个土办法,首先把,全部用#(任意字符,只要原文中没有就行)替换,然后再把#"和"#替换成,再按照,分隔,最后把剩下的#再替换成,
a,"b,c,d",e ---> a#"b#c#d"#e --->a,"b#c#d",e

   

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
16 [报告]
发表于 2012-06-01 16:10 |只看该作者
  1. >>> s = 'a,"b,c,d",e'
  2. >>> import re
  3. >>> t = re.search(r'(.*?),"([^"]+)",(.*), s)
  4. >>> print t.groups()
  5. ('a', 'b,c,d', 'e')
  6. >>>
复制代码

论坛徽章:
0
17 [报告]
发表于 2012-06-01 18:06 |只看该作者
回复 15# happybj20008

谢谢,有效!


   

论坛徽章:
0
18 [报告]
发表于 2012-06-02 12:06 |只看该作者
回复 17# fzc115100


    有bug,对付第二个例子
'a,"b,c,d",e,f,"g,h",i'
就有问题,

论坛徽章:
0
19 [报告]
发表于 2012-06-04 08:43 |只看该作者
回复 18# lj2009jl
呵呵,是的 谢谢提醒,其实第二个例子通用性不强,只针对一种情况的匹配。
感谢一下表示对回答我问题的人的尊敬。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP