正则表达式匹配字符的所有实例,除非后跟数字或它本身

Regex match all instances of character except when followed by a digit or is by itself

尝试匹配 @ 的每个实例,除非后跟 digit 或单独出现在 js.

@(?!\d) 查找后跟 digit

的所有内容

1@ @1 1 j@ @j @j1 1j@ j1 1j @@1 @ <-- 不想自己匹配


Regex demo

有什么想法吗?谢谢

您想删除任何未包含空格且后跟数字的 @。最简单的方法是匹配并捕获用空格括起来的 @ 并匹配所有其他未跟数字的 @ ,并替换为第 1 组占位符 </code>:</p> <pre><code>s.replace(/((?:^|\s)@)(?!\S)|@(?!\d)/g, '')

regex demo

详情

  • ((?:^|\s)@)(?!\S) - 第 1 组:字符串或空格 ((?:^|\s)) 的开头,然后是 @,后面没有跟一个非空格字符 ((?!\S), 等于 (?=\s|$), 空格或字符串结尾)
  • | - 或
  • @(?!\d) - @ 后面没有数字((?!\d) 是一个否定前瞻,如果在当前位置的右侧有一个匹配失败数字)