簡體   English   中英

連續標點和字母數字字符

[英]consecutive punctuation and alpha-numeric characters

可能是一個簡單的問題,但是我沒有太多的正則表達式經驗。 我想取一個字符串並選擇所有連續的標點字符和所有連續的字母數字字符

這是我所能接近的

r="my9zza :)asax"
import re
re.findall(r'(\w+)|([^a-zA-Z0-9\s]+)', r)

退貨

[('my9zza', ''), ('', ':)'), ('asax', '')]

但我想

['my9zza', ':)', 'asax']

只需使用:

r = "my9zza :)asax"
import re
print(re.findall(r'\w+|[^a-zA-Z0-9\s]+', r))

問題是原始代碼中有兩組括號,導致findall返回2倍。

如果要保留原始的正則表達式,還可以使用以下方法輕松地將結果轉換為所需的輸出:

[x[0] or x[1] for x in result]

您可以嘗試以下方法:

s = [('my9zza', ''), ('', ':)'), ('asax', '')]
final_s = [[b for b in i if b][0] for i in s]

輸出:

['my9zza', ':)', 'asax']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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