尝试匹配 @
的每个实例,除非后跟一个 数字
或在 js
中单独存在。
@(?!\d)
查找所有后面跟有 数字
1@ @1 1 j@ @j @j1 1j@ j1 1j @@1 @
<-- 不想单独匹配
有什么想法吗?谢谢
最佳答案
您想要删除所有未用空格括起来且后面未跟数字的 @
。最简单的方法是匹配并捕获用空格括起来的 @
,并匹配所有其他后面不带数字的 @
,并替换为第 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/