我想拆分字串,例如:
(so) what (are you trying to say)
what (do you mean)
進入如下串列:
[(so), what, (are you trying to say)]
[what, (do you mean)]
我嘗試過的代碼如下。在站點 regexr 中,正則運算式匹配我想要的部分但給出警告,所以......我不是正則運算式專家,我不知道我做錯了什么。
import re
string = "(so) what (are you trying to say)?"
rx = re.compile(r"((\([\w \w]*\)|[\w]*))")
print(re.split(rx, string ))
uj5u.com熱心網友回復:
Using與空字串[\w \w]*相同[\w ]*,也匹配空字串。
您可以使用 re.findall 而不使用任何捕獲組,而不是使用拆分,并撰寫如下模式:
\(\w (?:[^\S\n] \w )*\)|\w
\(比賽(\w匹配 1 個單詞字符(?:[^\S\n] \w )*可選擇重復匹配空格和 1 字字符
\)比賽)|或者\w匹配 1 個單詞字符
正則運算式演示
import re
string = "(so) what (are you trying to say)? what (do you mean)"
rx = re.compile(r"\(\w (?:[^\S\n] \w )*\)|\w ")
print(re.findall(rx, string))
輸出
['(so)', 'what', '(are you trying to say)', 'what', '(do you mean)']
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/410294.html
標籤:
