我被困在一个正则表达式问题上。我想匹配不是空格或换行符的东西。
不是空格很简单:
[^ ]
并不意味着空格或换行符不是:
[^( |\n)]
不,
[^( |\n)]
意思是“任何既不是空格、a (
、a )
、a|
或换行符的字符。
被[]
称为字符类。它匹配列表中的单个字符,可以选择^
在开头否定。
你想要的是
[^ \n]
(或者\S
如果您还想从合法匹配范围中排除换行符、换页符和制表符)。
[^\s]
我不知道它在 R 中如何,但通常 \s 表示白色字符http://www.regular-expressions.info/charclass.html#shorthand
要么 要么\S
,[^\s]
它们是等价的。
如果您也不介意排除制表符,您可以使用分别包含或排除空格、制表符和换行符的 \s 和 \S 快捷方式。
在您的情况下,正则表达式 '\S' 将匹配任何不是空格、制表符或换行符的字符。
来自快速参考指南:http ://www.regular-expressions.info/reference.html