我是使用正则表达式的新手。我有一个这样的字符串-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'

10-08 19:15