我想从格式化的字符串中提取特定的子字符串。例如,原始字符串为19592@click(className='android.widget.TextView',instance='15'):android.widget.TextView@"All"
。
我想从上面的字符串中提取"click"
,"android.widget.TextView"
,"15"
,"android.widget.TextView@"All""
。这是python regex可以解决的问题吗?我不确定应该使用哪些API。
答案 0 :(得分:0)
这能回答您的问题吗? -https://www.w3resource.com/python-exercises/re/python-re-exercise-47.php
否则,您可以使用-https://docs.python.org/3/library/configparser.html
这里配置解析器将解析您的字符串,可以为您提供所有由定界符(@,=,:)分隔的值
答案 1 :(得分:0)
我知道正则表达式就是您要的,但是也许您可以使用效率更高的普通find
:
def find_between(s, first, last):
first_pos = s.find(first)
last_pos = s.find(last)
if first_pos < 0 or last_pos < 0:
return None
first_pos = first_pos + len(first)
return s[first_pos:last_pos]
然后:
s = '19592@click(className=\'android.widget.TextView\',instance=\'15\'):android.widget.TextView@"All"'
print find_between(s, "@", "(")
Out[0]: 'click'
print find_between(s, "className=", ",")
Out[18]: "'android.widget.TextView'"