我正在寻找一种在字符串中查找模式的方法。
输入为:Could you do that for me @jdoe?
预期结果:@jdoe
要求:
hello @jdoe, how are you?
hello @jdoe
目前我得到的是:@([^"]*)([^\s]+)
这个正则表达式以@符号开头,在空格后停止,但每当我在第一个出现的空格符号后继续输入时继续。有人可以帮我试图找到一种方法来创建一个符合我要求的正则表达式吗?
答案 0 :(得分:0)
这是一个你可以玩的快速:
@\w+
https://regex101.com/r/ZuifZb/1
请注意\ w匹配a-z A-Z 0-9和_。
如果您只想要a-z A-Z,可以使用:
@[a-zA-Z]+
如果您不希望'Hello @ test1'成为匹配(@test),您可以使用否定前瞻:
@[a-zA-Z]+(?!\w)
答案 1 :(得分:0)
这是您可以尝试解决问题的正则表达式条件,它会在语句中出现@时触发,并在空格或语句结尾后停止。
str.lastIndexOf(`@`) != -1 && /^\S*$/ig.test(str.substring(str.lastIndexOf(`@`) + 1, str.length))
上述与js兼容的代码,您可以更改所需的任何语言的基本功能。