gpt4 book ai didi

Python:正则表达式匹配或条件?

转载 作者:太空宇宙 更新时间:2023-11-03 18:43:58 26 4
gpt4 key购买 nike

我有一个类似 {string}{string}{string} 的字符串,我可以通过它进行解析

import re
input_string = '{string}{string}{string}'
for match in re.finditer(r'{([^}]*)}', input_string):
print str(match.group(0)) #outputs {string}

但我也想捕获大括号后带有星号的字符串。

input_string = '{string}{string}*{string}{string}*'

如何修改正则表达式以便同时捕获 {string}{string}*

我尝试执行 r'{([^}]*)}|*' 但似乎不起作用。

另外,如果字符串包含大括号怎么办?前任。 {string{3}} 如何确保只捕获外部的 {},而不捕获内部的?

最佳答案

在正则表达式末尾添加 \*? 以匹配可选的 *

import re
input_string = '{string}{string}*{string}{string}*'
for match in re.finditer(r'{([^}]*)}\*?', input_string):
print str(match.group(0)) #outputs {string}

输出:

{string}
{string}*
{string}
{string}*

对于嵌套括号,简单的正则表达式无法解析它。您可以为此使用递归正则表达式,但它变得不可读( example )。您应该使用合适的解析库,更多讨论和示例here .

关于Python:正则表达式匹配或条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19948501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com