繁体   English   中英

正则表达式:2 双引号括起 python 中的字符串搜索

[英]RegEx: 2 double quote enclose string search in python

我尝试以下字符串:

text = '"Some Text","Some Text","18.3",""I Love You, Dad"","","","Some Text"'
result = re.findall(r'""[^"]+""', text)

此结果返回以下列表 ['""我爱你,爸爸""', '"",""']

但我只想要列表的第一项如何从正则表达式中删除第二项。 这里的“我爱你,爸爸”是可变的,任何字符串都可以用 2 个双引号括起来。 这里的条件是:字符串用 2 个双引号括起来。

您可以使用

re.findall(r'(?<![^,])""([A-Za-z].*?)""(?![^,])', text)

请参阅正则表达式演示 详情

  • (?<,[^,]) - 左逗号边界(字符串的开头或当前位置左侧需要的逗号以外的字符)
  • "" - 两个双引号
  • ([A-Za-z].*?) - 第 1 组:一个 ASCII 字母(使用[^\W\d_]匹配任何 Unicode 字母)然后除换行符以外的任何零个或多个字符尽可能少
  • "" - 两个双引号
  • (?,[^,]) - 右逗号边界(字符串结尾或当前位置右侧需要的逗号以外的字符)

re.findall() 方法查找文本的所有实例。 re.search() 方法要么返回 None(如果模式不匹配),要么返回包含有关字符串匹配部分的信息的 re.MatchObject。 此方法在第一次匹配后停止

import re;
text = '"Some Text","Some Text","18.3",""I Love You, Dad"","","","Some Text"'
result = re.search(r'""[^"]+""', text)
if result != None: 
    print("% s" % (result.group(0)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM