javascript - 正则表达式匹配字符的所有实例,除非后跟数字或单独存在

标签 javascript regex regex-negation

尝试匹配 @ 的每个实例,除非后跟一个 数字 或在 js 中单独存在。

@(?!\d) 查找所有后面跟有 数字

1@ @1 1 j@ @j @j1 1j@ j1 1j @@1 @ <-- 不想单独匹配


Regex demo

有什么想法吗?谢谢

最佳答案

您想要删除所有未用空格括起来且后面未跟数字的 @。最简单的方法是匹配并捕获用空格括起来的 @,并匹配所有其他后面不带数字的 @,并替换为第 1 组占位符 $1 :

s.replace(/((?:^|\s)@)(?!\S)|@(?!\d)/g, '$1')

请参阅regex demo

详细信息

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

关于javascript - 正则表达式匹配字符的所有实例,除非后跟数字或单独存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801133/

相关文章:

javascript - 检测浏览器的自动填充何时打开

javascript - 如何删除具有空值的奇怪 cookie?

javascript - 将应用程序 Controller 变量设置为 AJAX 调用返回的结果

javascript - D3 不会加载 Tree Map

regex - emacs:是否可以使用emacs regex将具有平衡括号的字符串匹配?

python - 对字符串中与正则表达式模式不匹配的所有部分进行操作的函数

ruby - 替换特定单词模式后未出现的所有冒号字符

regex - 编写不带否定的正则表达式

c# - 包含 <> 标签的正则表达式过滤器 "

c# - 如果一组符号仅重复,如何使正则表达式匹配?