[英]Escape sequences vs predefined character classes (aka special regex characters) when encapsulated by double quotes
[英]python regex, character classes same as special sequences?
從文檔https://docs.python.org/3/library/re.html
[]
-(用於表示一組字符)
- 集合中還接受\\ w或\\ S(定義如下)之類的字符類
什么是character classes
? 我只熟悉special characters
( *
, +
、 ?
等)和special sequences
( \\n
, \\r
, \\s
等)。 字符類是否引用了后面的special sequences
? 還是它們完全不同? 如果是這樣, character classes
到底包括什么?
character classes
在整個頁面中僅顯示2x。 它的定義不明確,不能表示\\w
, \\S
是character classes
某些成員還是唯一的成員。 進一步的測試表明\\n
也可以在[]
使用,但不能像\\A
那樣\\A
-使混淆更加復雜。
是的,它有點不確定,但同時我認為它非常直觀。 簡而言之,“字符類”是特殊字符或\\...
形式的“轉義序列”,表示多個字符的組,例如“所有空白” \\s
,“所有數字” \\d
或“所有非字符”空格” \\S
,是這些“特殊序列”的子集。
您應該知道三種字符類:
\\d
,對應於[0-9]
; 請注意,那些與浮點數不匹配,例如.
不在 \\d
\\w
對應[a-zA-Z0-9_]
,但是(在Python 2中)不包括非ASCII字符,例如變音符號,重音符號等。 \\s
,例如空格,制表符,換行符等。 此外,每個字符類可以通過使用相應的大寫字母“倒”,即\\W
匹配的一切,是不是在\\w
,以及類似\\D
和\\S
。
其他“特殊序列”僅包含一個字符,例如換行符\\n
或制表符\\t
(盡管它們實際上並不是正則表達式語言的一部分,而只是基本的Python字符串轉義序列),而其他則代表了抽象概念,例如“在單詞和非單詞之間” \\b
,或“在字符串的開頭” \\A
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.