我在使用正则表达式时遇到问题。所以基本上我有这样的字符串:string = '<bash><exit><bash-trap><terminology>'我最终想要的是所有单独单词的列表:['bash','exit','bash-trap','terminology']到目前为止我所做的:substitution = re.sub(r'[^A-Za-z0-9-]+', ' ', string)然后re.split(r'[^A-Za-z0-9-])',substitution)这给了我以下结果:['', 'bash', 'exit', 'bash-trap', 'terminology', '']谢谢 !
2 回答
![?](http://img1.sycdn.imooc.com/545869510001a20b02200220-100-100.jpg)
三国纷争
TA贡献1804条经验 获得超7个赞
您想要的只是尖括号内的单词列表。因此,您可以re.findall直接在输入字符串上使用。
re.findall(r'<(.*?)>', string)
代码:
import re
string = '<bash><exit><bash-trap><terminology>'
print(re.findall(r'<(.*?)>', string))
# ['bash', 'exit', 'bash-trap', 'terminology']
![?](http://img1.sycdn.imooc.com/545865470001bf9402200220-100-100.jpg)
慕沐林林
TA贡献2016条经验 获得超9个赞
使用模式\<(.*?)\>
前任:
import re
string = '<bash><exit><bash-trap><terminology>'
print(re.findall(r"\<(.*?)\>", string))
# --> ['bash', 'exit', 'bash-trap', 'terminology']
添加回答
举报
0/150
提交
取消