簡體   English   中英

使用正則表達式刪除以數字開頭的字符串中的第一個單詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM