我试图通过删除字符串末尾的字母数字字符来清除一些文本,但是我也删除了正常的单词,如输出所示。有人能帮我达到预期的效果吗?你知道吗
re.sub(r'[a-zA-Z0-9/]{5,}$', '', text)
asus zenfone 3s max zc521tl
asus zenfone max plus (m1) zb570tl
asus zenfone max pro (m1) zb601kl/zb602k
nokia 3.1 c
nokia 3
asus zenfone 3 zoom ze553k
asus zenfone 3 deluxe zs570kl
blackberry keyone
htc explorer
lg tribute
acer liquid z520
输出:
asus zenfone 3s max
asus zenfone max plus (m1)
asus zenfone max pro (m1)
nokia 3.1 c
nokia 3
asus zenfone 3 zoom
asus zenfone 3 deluxe
blackberry
htc
lg
acer liquid z520
预期输出:
asus zenfone 3s max
asus zenfone max plus (m1)
asus zenfone max pro (m1)
nokia 3.1 c
nokia 3
asus zenfone 3 zoom
asus zenfone 3 deluxe
**blackberry keyone**
**htc explorer**
**lg tribute**
acer liquid z520
您可以为正则表达式添加一个正向的前瞻性,要求末尾的单词至少包含一个数字,以便将其删除:
(?=\D*\d)
。这将阻止它删除不包含数字的普通单词。你知道吗完整程序:
它输出:
如果它应该是字符串中的最后一个单词,并且总是有多个单词,则可以使用:
[ \t]+
匹配1+空格或制表符(?=[a-zA-Z0-9/]{5})
断言至少5个字符的任何列出的[a-zA-Z/]*
匹配0+次列出的任何[0-9]
匹配一个数字[a-zA-Z0-9/]*
匹配0+次character类中列出的任何[A-Za-z]
匹配字符a-zA-Z$
字符串结尾Regex demo
在替换中使用空字符串。你知道吗
相关问题 更多 >
编程相关推荐