回答
如果你沒有想的Unicode的,你可以使用
[ \t\r\f\v]
或者,由於\v
匹配的VT(中古立式符號,\x0b
),\r
也被認爲是一個換行符,並\f
也一種垂直空白(而過時,現在雖然 - (進紙,\x0c
):
[ \t]
見docs:
\s
當未指定UNICODE
標誌時,它的任何空白字符相匹配,這等同於集合[ \t\n\r\f\v]
。LOCALE
標誌對空間的匹配沒有額外的影響。如果設置了UNICODE
,則它將與字符[ \t\n\r\f\v]
加上匹配,無論在Unicode字符屬性數據庫中哪些屬於空間。
如果你需要支持所有Unicode空間,使用
\s(?<!\n)
這個表達式將匹配任何空白,是不是換行。
的如何將限制添加到一個正速記字符類的另一個示例中,使用它的一個否定的字符類的內部相對。 \S
是\s
相反的速記字符類,所以,我們應該把它變成[^...]
和*從\s
添加字符,我們需要排除:
[^\S\n]
添加\r
,\v
等,如果你需要排除所有換行符。 [^\S\n]
匹配除非空白(=匹配任何空格)和換行符以外的任何字符。
「或者,因爲'\ v'也可能與換行符匹配...」:不在Python中不能, –
@AlanMoore:'\ v'出現在空白列表中,它表示一個垂直空間,因此,如果要排除所有可能的換行符號,我建議刪除它'print(hex (ord(「\ v」)))[[prints](https://ideone.com/a7Ss9Y)'0xb'('= vertical tabulation(VT)') –
我同意OP應該排除所有垂直空格其中包括'\ f',BTW),但你說'\ v'匹配一個換行符,事實並非如此,'\ v'匹配一個垂直製表符,'\ n'匹配一個換行符。 –
\s
匹配[\r\n\t\f ]
,如果你只想要空格,你可以使用以下命令:
>>> re.sub(' ', '', 'test string\nwith new line')
由於' '
空間(直譯),這將刪除所有的空格,但將保持\n
字符匹配。
有沒有什麼方法可以跳過
\n
\s
在正則表達式中?
您可能會使用負向預測。
re.sub(r'(?!\n)\s', '', s)
如果您還想跳過回車,請在負面預覽內添加\r
。
re.sub(r'(?!\n|\r)\s', '', s)
這就像一種減法。即上面的正則表達式會減去\n
,\r
from \s
嘿感謝阿維納什。在一些地方它不工作。 – user2550098
例如: - mystrng =「」\ na dsf cd \ nb \ nc hdfbs \ n dffs \ t fdvfv \ tdfd dsf \ n「:對於這個字符串,它將刪除hdfbs和dffs之間的」\ n「。 – user2550098
@ user2550098 [這是不可能的](https://regex101.com/r/cE0rI7/1) –
這是said in the document that \s
matches [ \t\n\r\f\v]
。因此,您只需將'\ s +'替換爲[\ t \ r \ f \ v] +即可跳過\ n。
您可以使用否定的字符類[^\S\n]
其中\S
是所有這不是一個空白:
re.sub(r'[^\S\n]', '', s)
我已經回來添加到我的答案,並看到這一點。我仍然會添加它。 –
- 1. 如何在Python中跳過匹配模式?
- 2. sed -n s/pattern/\ 1/p打印既匹配又不匹配?
- 3. 跳過JQuery中的前N個元素
- 4. 過濾器不跳過註冊頁面
- 5. 如何有效地跳過python文件中的前n行?
- 6. 什麼呢字符串匹配「S/\ r \ n// G」是指在Perl
- 7. 在Java中註冊前ex用於匹配新行中出現的模式
- 8. 你在bash中如何匹配^ [\ s] *?
- 9. 則跳過模式匹配
- 10. 匹配與[\ S \ S] *? vs(。)+ regexps
- 11. 爲什麼註冊表值在Windows上的Python 3中的winreg中不匹配?
- 12. %scanf中的[^ \ n] s不會等待輸入並被跳過
- 13. Python:在csv.DictReader中跳過標註#的註釋行
- 14. 在sed中使用正則表達式時跳過前n行?
- 15. 在Python中通過Regex匹配「...」=「...」
- 16. Lua註冊表環境(s)?
- 17. Kotlin序列「跳過」前N個條目
- 18. uniq的跳過前N個字符/場
- 19. 註冊但在支付網關前彈跳
- 20. 在Enumerable中跳過'n'迭代#each_cons
- 21. 在lldb中跳過下n個斷點
- 22. Python的itertools跳過提前
- 23. 工作燈 - 日誌規格與當前註冊的不匹配。
- 24. Java正則表達式跳過匹配
- 25. 在Python中跳過迭代
- 26. 在Python中跳過多行
- 27. Python,在匹配前後提取3行
- 28. 匹配在python
- 29. 匹配在python
- 30. Python中通過匹配值
我不這麼認爲...單獨逃生'[\ t]' – Valijon