我正在尝试创建一个正则表达式(regexp),它将避免匹配以“@”、“-”、“!”、“:”和“〉”结尾的单词
规则如下-名称应以@开始,其后可以有除上述字符之外的任何字符。因此在以下字符串中:“zhsvfghzfajhuib@Bobbie?skvshvfhj!G!”- @Bobbie?将匹配“768huehfvwkjv@Lana97958749ndgjhb!G!”- @Lana9将匹配“,vbfnhytjnh@ Sammie-sjvjhsvfjj!G!kjdbdjb”- @Sammie-将不匹配,因为名称后面的字符在上述范围内。
我最近的尝试是:@(?[A-Za-z]+)[^@-!:〉],但它所做的只是删除最后一个字符,仍然匹配。
我试探着:
- 在搜索中添加另一个字符@(?[A-Za-z]+).[^@-!:〉],但搜索只是移动到下一个字符。
- 添加单词边界@(?[A-Za-z]+)\b[^@-!:〉],这在某些情况下有帮助,但不是所有情况下都有帮助
1条答案
按热度按时间zujrkrfu1#
如果支持,可以使用原子组:
Regex demo
另一个选项是使用具有捕获组和反向引用的正前瞻,因为在前瞻循环中没有回溯:
Regex demo