Javascript 用于匹配两个字符的正则表达式,其中@是唯一的字符或前面有空格
我正在尝试编写一个正则表达式,我总是将最近键入的字符与正则表达式进行比较,并尝试仅在前面没有任何字符时匹配“@”和“@” 我正在尝试使用:Javascript 用于匹配两个字符的正则表达式,其中@是唯一的字符或前面有空格,javascript,regex,Javascript,Regex,我正在尝试编写一个正则表达式,我总是将最近键入的字符与正则表达式进行比较,并尝试仅在前面没有任何字符时匹配“@”和“@” 我正在尝试使用: lastTwoEntered.match(/(\s|^)@/); 及 但它们都是不准确的 以下内容不应返回true: "a" “@d” '@@' ' ' “@”如果我明白你想做什么: /^@$|^@$/ “$”表示它以@结尾,如果我理解您的意图: /^@$|^@$/ “$”表示它以@结尾,请尝试以下操作: lastTwoEntered.match( /^
lastTwoEntered.match(/(\s|^)@/);
及
但它们都是不准确的
以下内容不应返回true:
"a"
“@d”
'@@'
' '
“@”如果我明白你想做什么: /^@$|^@$/
“$”表示它以@结尾,如果我理解您的意图: /^@$|^@$/ “$”表示它以@结尾,请尝试以下操作:
lastTwoEntered.match( /^ ?@$/);
问题符号与空格匹配0或1次。你还可以找到其他有用的量词。
要彻底理解这一点,您应该了解贪婪和懒惰匹配。这是一篇很好的解释文章。
假设匹配器将尝试匹配正则表达式的最大有效字符串
因此,对于您提供的第一个正则表达式,匹配将是: 任何东西、空间、at、任何东西 或 行的开头、at、anything 第二场比赛: 开始,除了边界之外的任何东西,在,任何东西 这些都不是你想要的 将正则表达式翻译为正常语音是一种很好的做法,以确保它符合您的要求。尝试以下方法:
lastTwoEntered.match( /^ ?@$/);
问题符号与空格匹配0或1次。你还可以找到其他有用的量词。
要彻底理解这一点,您应该了解贪婪和懒惰匹配。这是一篇很好的解释文章。
假设匹配器将尝试匹配正则表达式的最大有效字符串
因此,对于您提供的第一个正则表达式,匹配将是: 任何东西、空间、at、任何东西 或 行的开头、at、anything 第二场比赛: 开始,除了边界之外的任何东西,在,任何东西 这些都不是你想要的
将正则表达式翻译为正常语音是一种很好的做法,以确保它是您想要的。我只想得到“@”和“@”,您的标题是“后跟一个空格”,但您的示例显示它前面有一个空格。在任何情况下,都可以使用
^
标记字符串的开头;您只需在第一个代码末尾添加$
,就可以了。是一个非常有用的工具。它的上下文是什么?你是不是在尝试匹配类似twitter的名字标签?我只想得到“@”和“@”,你的标题是“后跟一个空格”,但你的例子显示它前面有一个空格。在任何情况下,都可以使用^
标记字符串的开头;您只需在第一个代码末尾添加$
,就可以了。是一个非常有用的工具。它的上下文是什么?你是不是在尝试匹配类似twitter的名字标签?