我有一个字符串,我只想匹配子串的任何字符(S)除了空间和新的一行。正则表达式应该是什么?我知道正则表达式的任何东西,但空间。[^ ]+和正则表达式,除了新行[^\n]+(我在Windows上)。我不知道如何把它们组合在一起。
[^ ]+
[^\n]+
gkl3eglg1#
您可以将空格字符添加到要排除的字符类中。
^[^\n ]*$
正则表达式
^ # the beginning of the string [^\n ]* # any character except: '\n' (newline), ' ' (0 or more times) $ # before an optional \n, and the end of the string
9jyewag02#
试试这个
[^\s]+
\s是空格的简写,即space(),newline(\n),tab(\t)。
ibrsph3r3#
如果只想排除空格和换行符,那么可能需要使用
r'^[^ \n]*$'
比如说,
print re.match(r'^[^ \n]*$', """WelcometoStackoverflow""") # <_sre.SRE_Match object at 0x7f77a2a58238> print re.match(r'^[^ \n]*$', """Welcome toStackoverflow""") # None print re.match(r'^[^ \n]*$', """Welcome toStackoverflow""") # None
请注意,它不会消除所有其他空白字符,如制表符,换行符等
print re.match(r'^[^ \n]*$', """Welcome\ttoStackoverflow""") # <_sre.SRE_Match object at 0x7f77a2a58238>
所以如果你想排除所有的空白字符,那么你可以使用
r'^[^\s]*$'
或
r'^\S*$'
print re.match(r'^[^\s]*$', """WelcometoStackoverflow""") # <_sre.SRE_Match object at 0x7f9146c8b238> print re.match(r'^[^\s]*$', """Welcome toStackoverflow""") # None print re.match(r'^[^\s]*$', """Welcome toStackoverflow""") # None print re.match(r'^[^\s]*$', """Welcome\ttoStackoverflow""") # None
\S与[^\s]相同。从文件中引用,
\S
[^\s]
当UNICODE标志没有指定时,它匹配任何空白字符,这相当于设置[ \t\n\r\f\v]。LOCALE标志对空格的匹配没有额外的影响。如果设置了UNICODE,这将匹配字符[ \t\n\r\f\v]加上Unicode字符属性数据库中归类为空格的任何字符。
UNICODE
[ \t\n\r\f\v]
LOCALE
当未指定UNICODE标志时,匹配任何非空格字符;这相当于设置[^ \t\n\r\f\v]LOCALE标志对非空白匹配没有额外的影响。如果设置了UNICODE,则匹配Unicode字符属性数据库中未标记为空格的任何字符。
[^ \t\n\r\f\v]
3条答案
按热度按时间gkl3eglg1#
您可以将空格字符添加到要排除的字符类中。
正则表达式
9jyewag02#
试试这个
\s是空格的简写,即space(),newline(\n),tab(\t)。
ibrsph3r3#
如果只想排除空格和换行符,那么可能需要使用
比如说,
请注意,它不会消除所有其他空白字符,如制表符,换行符等
所以如果你想排除所有的空白字符,那么你可以使用
或
比如说,
\S
与[^\s]
相同。从文件中引用,\s
当
UNICODE
标志没有指定时,它匹配任何空白字符,这相当于设置[ \t\n\r\f\v]
。LOCALE
标志对空格的匹配没有额外的影响。如果设置了UNICODE
,这将匹配字符[ \t\n\r\f\v]
加上Unicode字符属性数据库中归类为空格的任何字符。\S
当未指定
UNICODE
标志时,匹配任何非空格字符;这相当于设置[^ \t\n\r\f\v]
LOCALE
标志对非空白匹配没有额外的影响。如果设置了UNICODE
,则匹配Unicode字符属性数据库中未标记为空格的任何字符。