从单个符号到任何字母数字符号或 EOL 的 Python 正则表达式

问题描述 投票:0回答:2
import re
text123 = "test, test12, #test3,  #test4 - : test555"
print(re.findall(r"#.*[^a-zA-Z\d\s:]",  text123)) 
# expected ['#test3', '#test4']
# result ['#test3,  #test4 -']

print(re.findall(r"#.*[^a-zA-Z\d]",  text123)) 
# expected ['#test3', '#test4']
# result ['#test3,  #test4 - : ']est3,  #test4 - ']

print(re.findall(r"#.*?[^a-zA-Z\d]",  text123)) 
# result ['#test3,', '#test4 ']
# what would I like- ['#test3', '#test4']

我试过了 查找所有以特定字符开头和结尾的子字符串 查找所有以特定字符开头和结尾的子字符串

以及其他链接\手册\等 - 没办法

python regex split
2个回答
0
投票

print(re.findall(r"#[a-zA-Z0-9]+", text123))

不错。


0
投票

如果您尝试查找字母数字,为什么不使用字母数字而不是点符号?放你想要的,避免你不想要的。

import re
text123 = "test, test12, #test3,  #test4 - : test555"
print(re.findall(r"#[\w]+",  text123)) 
# expected ['#test3', '#test4']
# result ['#test3,  #test4']
© www.soinside.com 2019 - 2024. All rights reserved.