3
http://www.regular-expressions.info/posixbrackets.html有一個表格,它概括了所有的POSIX括號表達式,並提供了等效的簡寫。正則表達式中的[:graph:]是否等同於 S?
我無法理解爲什麼這沒有提及\S
作爲[:graph:]
的簡寫。他們不一樣嗎?如果是的話,那麼你能否用例子來解釋我,他們是如何不同的?
http://www.regular-expressions.info/posixbrackets.html有一個表格,它概括了所有的POSIX括號表達式,並提供了等效的簡寫。正則表達式中的[:graph:]是否等同於 S?
我無法理解爲什麼這沒有提及\S
作爲[:graph:]
的簡寫。他們不一樣嗎?如果是的話,那麼你能否用例子來解釋我,他們是如何不同的?
[:graph:]
是與\S
不同的字符類別。
[:graph:]
只匹配可見字符。但\S
匹配任何不是空格的字符(空格,換行符,字符返回,換行符,製表符,垂直製表符,..)。
例如,[:graph:]
與NUL,Backspace,BEL,...不匹配,但\S
與它們匹配。
regex
包(其支持POSIX字符類)
Python的例子:
>>> import regex
>>> regex.findall(r'[[:graph:]]', 'a \0 \a \b z')
['a', 'z']
>>> regex.findall(r'\S', 'a \0 \a \b z')
['a', '\x00', '\x07', '\x08', 'z']
這似乎是正確的:https://gist.github.com/anonymous/5cfe0ef7fbb771a4f2e2 – 2014-09-21 15:16:44