[英]Regex: searching for words that starts with @ or @
我想在 python 中創建一個正則表達式來查找以 @ 或 @ 開頭的單詞。
我創建了以下正則表達式,但輸出在每個字符串中包含一個額外的空格,如您所見
regex = r'\s@\/?[\w\.\-]{2,}'
exp = 'george want@to play @.hdgska football @dddada'
re.findall(regex, exp)
Output: [' @.hdgska', ' @dddada']
但是,我想要的輸出如下
Output: ['@.hdgska', '@dddada']
如果您能幫助我,我將不勝感激!
編輯: @第四只鳥,非常感謝您的幫助。 還有一件事我不知道如何處理。 如果我們有這個字符串
s = "george want@to play @.hdgska football @dddada@snhfbjskjs"
輸出是
['@.hdgska', '@dddada']
但是,我想要的輸出應該是這個
'@.hdgska'
在您的模式中,您實際上匹配的是前導\s
並且在 @ 之后可以有一個可選的/
和\/?
但它應該可選地以點開頭。
例如,您可以匹配可選的點,然后匹配字符類中允許的字符的 2 倍或更多倍。
在 @ 符號的左側,斷言非單詞邊界或斷言空白邊界。
請注意,您不必轉義字符類中的點和連字符。
\B@\.?[\w.-]{2,}
另外的選擇:
(?<!\S)@\.?[\w.-]{2,}
例子
import re
pattern = r"(?<!\S)@\.?\w+[\w.-]{2,}"
s = "george want@to play @.hdgska football @dddada"
print(re.findall(pattern, s))
輸出
['@.hdgska', '@dddada']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.