繁体   English   中英

正则表达式在每个单词的开头和结尾查找双引号或单引号

[英]regex find double or single quotes in start and end of each word

我试图找出用单引号或双引号括起来的多个单词或一组单词。

我使用下面的双引号正则表达式模式对其进行了测试。 但是,问题仍然存在,即使我有一个以单双引号开头并以两个双引号结尾的单词,它也会给我输出值。 除了每个单词用两个双引号括起来之外,我还期望找到额外的引号,因为我必须删除那些额外的引号。

f = '"country id""   "state id"'

print(re.findall('^".*["\s"][a-z].*"$',f))

您可以使用

^\s*"[^"]*"(?:\s*"[^"]*")*\s*$

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

  • ^ - 字符串的开头
  • \s* - 零个或多个(此处为前导)空格
  • "[^"]*" - 一个" ,除"之外的零个或多个字符,然后是一个"
  • (?:\s*"[^"]*")* - 零个或多个零个或多个空格的序列,然后是"字符之间没有其他"的子字符串
  • \s* - 零个或多个(此处为尾随)空格
  • $ - 字符串结束。

如果有转义序列,则需要将其修改为

^\s*"[^"\\]*(?:\\.[^"\\]*)*"(?:\s*"[^"\\]*(?:\\.[^"\\]*)*")*\s*$

请参阅此正则表达式演示

这里使用"[^"\\]*(?:\\.[^"\\]*)*"代替"[^"]*"来匹配

  • " - 一个"字符
  • [^"\\]* - 除"\之外的零个或多个字符
  • (?:\\.[^"\\]*)* - 任何转义字符的零个或多个序列(换行符除外),然后是"\之外的零个或多个字符
  • " - 一个"字符

暂无
暂无

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

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