正则表达式模式不包括第一个字符

Ale*_*lex 1 regex swift

我正在使用这个正则表达式模式:@[a-zA-Z0-9-_]+匹配字符串中的@usernames.

@alex,whatsup
@brian @mary很酷的照片

突出显示的文本grey是正则表达式模式返回的内容,但我希望它返回@字符的所有内容.所以我真正想要的是:

嘿@ alex,whatsup
@ brian@ mary很酷的照片

我应该如何改变模式?

sen*_*hin 5

你应该用积极的回顾后,这需要断言如下:我想匹配[a-zA-Z0-9-_]+,但只有当有("阳性")的@ 它(因此,"回顾后发").

我并不特别了解Swift正则表达式语法,但大多数引擎都(?<=...)用于正面的后视.因此:

(?<=@)[a-zA-Z0-9-_]+
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以在Regex101上玩它.