我想選擇字符串中的所有長單詞:re.findall("[a-z]{3,}")
如何正則表達式匹配一切,但長單詞?
但是,出於某種原因我只能使用替換字符。因此,我需要用空格替換3個或更多字母的單詞。 (例如,abc de1 fgh ij
→abc fgh
)
這樣的正則表達式看起來怎麼樣?
結果應該是所有「[a-z] {3,}」由空格連接起來。但是,您只能使用替換。
或者在Python:查找regex
這樣
re.sub(regex, " ", text) == " ".join(re.findall("[a-z]{3,}", text))
下面是一些測試用例
import re
solution_regex="..."
for test_str in ["aaa aa aaa aa",
"aaa aa11",
"11aaa11 11aa11",
"aa aa1aa aaaa"
]:
expected_str = " ".join(re.findall("[a-z]{3,}", test_str))
print(test_str, "->", expected_str)
if re.sub(solution_regex, " ", test_str)!=expected_str:
print("ERROR")
->
aaa aa aaa aa -> aaa aaa
aaa aa11 -> aaa
11aaa11 11aa11 -> aaa
aa aa1aa aaaa -> aaaa
注意空間並不比其他任何符號不同。
我明白你的意思是隻有沒有數字的單詞和至少3個字母。如果它是正確的,那就把它放在問題中,如果沒有的話,把你的正確要求放在那裏。 – Gangnus
是的,單詞被定義爲問題的第一行。我添加了一個Python表達式來使其更加清晰。 – Gerenuk
:-)您已經忘記在標籤中提及該語言。另外,如果您正在搜索正確的正則表達式,請不要使用正則表達式進行定義。你是否要求我們正確設置任務?請用詞定義,請! – Gangnus