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小时没有雨夹雪?好啊