1

我被困在一个正则表达式问题上。我想匹配不是空格或换行符的东西。

不是空格很简单:

[^ ]

并不意味着空格或换行符不是:

[^( |\n)]
4

4 回答 4

6

不,

[^( |\n)]

意思是“任何既不是空格、a (、a )、a|或换行符的字符。

[]称为字符类。它匹配列表中的单个字符,可以选择^在开头否定。

你想要的是

[^ \n]

(或者\S如果您还想从合法匹配范围中排除换行符、换页符和制表符)。

于 2012-10-27T10:05:28.143 回答
1
[^\s] 

我不知道它在 R 中如何,但通常 \s 表示白色字符http://www.regular-expressions.info/charclass.html#shorthand

于 2012-10-27T10:07:02.527 回答
1

要么 要么\S[^\s]它们是等价的。

于 2012-10-27T10:07:58.967 回答
1

如果您也不介意排除制表符,您可以使用分别包含或排除空格、制表符和换行符的 \s 和 \S 快捷方式。

在您的情况下,正则表达式 '\S' 将匹配任何不是空格、制表符或换行符的字符。

来自快速参考指南:http ://www.regular-expressions.info/reference.html

于 2012-10-27T10:03:03.993 回答