Javascript 在本例中,Regexp在空格后匹配

Javascript 在本例中,Regexp在空格后匹配,javascript,regex,Javascript,Regex,/.n/g匹配“不,苹果在树上” 请注意,“nope”的“n”不受影响,因为: (The decimal point) matches any single character except the newline characters: \n \r \u2028 or \u2029. ([\s\S] can be used to match any character including newlines.) 但问题是我不想匹配空格后面的“n”: /.n/g匹配“我不想匹配此n!” 如何

/.n/g
匹配“不,苹果在树上”

请注意,“nope”的“n”不受影响,因为:

(The decimal point) matches any single character except the
newline characters: \n \r \u2028 or \u2029. ([\s\S] can be
used to match any character including newlines.)

但问题是我不想匹配空格后面的“n”:

/.n/g
匹配“我不想匹配此n!”


如何实现这一点?

尝试使用不包含空格族的字符类:

/[\S]n/g

类似于
/[\S]n/g
(或较短、可读性较差的版本
/\Sn/g
的regexp将为您提供所需的功能。
\S
将匹配任何非空白字符


请记住,
\S
将不匹配
”、
“\t”
,等等。如果您只想忽略“实”空格
/[^]n/g
是一个不错的选择。

虽然javascript regexp源于Perl,但它们是条件匹配和查找。我相信,您唯一的选择是排除空格族,正如@refp和@TudorConstantin已经建议的那样:
/\Sn/g

说“尊重”你是说你不想匹配在空格/空白后找到的
n
?是的,很抱歉没有那么清楚,我将尝试更新question@ajax333221这是因为他之前的片段(编辑前)括号中还包含
\s
,这意味着它将匹配任何空白字符。由于他使用了
\s
\s
,因此它匹配任何字符,与
完全相同。我认为“refp”更好地解释了这一点,而且我认为他在编辑之前的回答是正确的……我将接受他的回答ans@refp-
\s
\S
不仅仅是
-它也匹配换行符,但你主要是对的-我建议使用正则表达式,因为我知道他希望
n
之前的所有字符match@TudorConstantin是的,你说得对。我责备睡眠不足和喝太多咖啡,谢谢你指出这一点但对我来说……老实说,我感到很尴尬。早上6:19,32小时不睡觉让雷夫很累。@雷夫,你为什么32小时没有雨夹雪?好啊