[英]remove curly braces from string in python using regex
我想要一个正则表达式来搜索logger.error("pbType",
并排除带有{}
的示例,例如:
logger.info("URL:\n\"{}\"\n",
这对我re.search('.*logger.*"[\\w.:-_()\\[\\]]*"\\s*,',line)
它以{}
返回行。 请帮忙谢谢
让我们看看您当前的正则表达式如何解析有问题的行:
.*|logger| .* |"|[\w.:-_()\[\]]*|"|\s*|,
| | | | | | |
|logger|.info("URL:\n\"{}\|"|\n |"| |,
它在正则表达式中将第三个引号用作第一个引号。
要解决此问题,您需要确保".*"
不会比您希望的更多。
[^"\n]*logger[^"\n]*"[\w.:-_()\[\]]*"\s*,
另外,您当前的正则表达式中还有其他一些错误:
[ :-_ ]
包括ASCII范围在58到95之间的所有字符。如果要在字符集中包含减号,则必须排在前面。
[-\w.:_()\[\]]
将原始字符串用于正则表达式是一种很好的样式,因为您知道反斜杠将是反斜杠而不是触发转义序列。
re.search(r'...', line)
您要确保"\\s*,
确实得到了字符串的末尾,可能有一个\\",{}
没被抓住的末尾,因此请匹配正则表达式中的行尾...$
总之,这些建议将使您的代码行:
re.search(r'[^"\n]*logger[^"\n]*"[-\w.:-()\[\]]*"\s*,$', line)
只要做一个if。 无需正则表达式-
for i in l1:
if not("{}" in i):
l2.append(i)
考虑到l1是您的字符串列表,l2是必需的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.