簡體   English   中英

python正則表達式,字符類與特殊序列相同嗎?

[英]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\\Scharacter 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.

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