[英]Removing first word in a string starting with digit using regex
我是使用正則表達式的新手。 我有一個這樣的字符串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'
采用:
import re
s ='3g wireless'
print(re.sub(r'\b(\d+\w*)', '', s))
# wireless
\\b
匹配單詞邊界。
\\d+
匹配一個或多個數字。
\\w*
匹配零個或多個字母或數字。
。
您需要做的是^\\b(\\d.*?)\\b
,其中\\b(\\d.*?)\\b
創建一個以數字開頭的單詞邊界,並限制在其邊界內, ^
指定為在開始。
import re
text = '3G Wireless'
re.sub(r'^\b(\d.*?)\b','',text).strip()
# Wireless
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.