我试图找出哪些单词或一组单词用单引号或双引号括起来.

我使用下面的正则表达式模式对其进行了双引号测试.然而,问题仍然是一样的,即使我有一个单词以单双引号开始,以两个双引号结束,它也给了我输出值.我希望除了每个单词用两个双引号括起来外,还有什么额外的引号应该找到,因为我必须删除这些额外的引号.

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

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

推荐答案

您可以使用

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

参见regex demo.Details:

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

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

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

this regex demo.

这里使用"[^"\\]*(?:\\.[^"\\]*)*"而不是"[^"]*"来匹配

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

Python相关问答推荐

pandas DataFrame中类型转换混乱

Python:记录而不是在文件中写入询问在多文件项目中记录的最佳实践

Matplotlib轮廓线值似乎不对劲

无法使用python.h文件; Python嵌入错误

如何让我的Tkinter应用程序适合整个窗口,无论大小如何?

从DataFrame.apply创建DataFrame

如何根据条件在多指标框架上进行groupby

使用SciPy进行曲线匹配未能给出正确的匹配

我在使用fill_between()将最大和最小带应用到我的图表中时遇到问题

我从带有langchain的mongoDB中的vector serch获得一个空数组

Python上的Instagram API:缺少client_id参数"

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

我如何使法国在 map 中完全透明的代码?

为什么以这种方式调用pd.ExcelWriter会创建无效的文件格式或扩展名?

Pre—Commit MyPy无法禁用非错误消息

Asyncio:如何从子进程中读取stdout?

在单次扫描中创建列表

未调用自定义JSON编码器

如何将相同组的值添加到嵌套的Pandas Maprame的倒数第二个索引级别

使用np.fft.fft2和cv2.dft重现相位谱.为什么结果并不相似呢?