我是使用正则表达式的新手。我有一个这样的字符串-3G Wireless
我想删除所有从数字开始的单词,以便3G Wireless
成为Wireless
。
我想出了这个正则表达式来做这项工作-
>>> re.sub("\S*\d\S*", "", "3g wireless")
' wireless'
在这种情况下会失败-
>>> re.sub("\S*\d\S*", "", "RPG400")
''
我只想忽略以数字开头的单词。
最佳答案
\s*
在开头的实际数字之前考虑任何空格。 \b
检查第一个单词。
而且,以后可以使用strip()删除剩余字符串开头和结尾的所有不必要的空格。
re.sub(r'\s*\b(\d+\w*)', '', "3g wireless").strip()
# 'wireless'
re.sub(r'\s*\b(\d+\w*)', '', "RPG400").strip()
# 'RPG400'