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