如何匹配以 @ 开头并以 ;、.、: 或结尾的单词 ?
单词可以包含任何字母数字字符,并且可以包含下划线。
我想出了 ^@([a-zA-Z0-9_])*[:;, ]$ 这似乎只对单个单词句子有效。
请您参考如下方法:
只需删除 anchor ^ 和 $ 即可。
如果您不想匹配 "Example @nothing" 中的空字符串,您可能需要指定 "1 or more qualifier"+ 而不是 *。即 @([a-zA-Z0-9_]+)[:;, ]
可以通过将 * 替换为 {1,15} 来限制 1-15 个字符的用户名,即 @([a-zA-Z0- 9_]{1,15})[:;, ].
如果你想得到 @ 符号加上结尾字符作为结果,@[a-zA-Z0-9_]{1,15}[:;, ] 就足够了。
如果只想捕获名称,可以使用此 @([a-zA-Z0-9_]{1,15})[:;, ]
如果 token 正好在字符串的末尾并且没有特殊字符,并且您想捕获它,您可能需要将 [:;, ] 修改为 ( ?:[:;, ]|$)
