正则表达式匹配字符的所有实例,除非后跟数字或它本身
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 @
<-- 不想自己匹配
有什么想法吗?谢谢
您想删除任何未包含空格且后跟数字的 @
。最简单的方法是匹配并捕获用空格括起来的 @
并匹配所有其他未跟数字的 @
,并替换为第 1 组占位符 </code>:</p>
<pre><code>s.replace(/((?:^|\s)@)(?!\S)|@(?!\d)/g, '')
详情
((?:^|\s)@)(?!\S)
- 第 1 组:字符串或空格 ((?:^|\s)
) 的开头,然后是 @
,后面没有跟一个非空格字符 ((?!\S)
, 等于 (?=\s|$)
, 空格或字符串结尾)
|
- 或
@(?!\d)
- @
后面没有数字((?!\d)
是一个否定前瞻,如果在当前位置的右侧有一个匹配失败数字)
尝试匹配 @
的每个实例,除非后跟 digit
或单独出现在 js
.
@(?!\d)
查找后跟 digit
1@ @1 1 j@ @j @j1 1j@ j1 1j @@1 @
<-- 不想自己匹配
有什么想法吗?谢谢
您想删除任何未包含空格且后跟数字的 @
。最简单的方法是匹配并捕获用空格括起来的 @
并匹配所有其他未跟数字的 @
,并替换为第 1 组占位符 </code>:</p>
<pre><code>s.replace(/((?:^|\s)@)(?!\S)|@(?!\d)/g, '')
详情
((?:^|\s)@)(?!\S)
- 第 1 组:字符串或空格 ((?:^|\s)
) 的开头,然后是@
,后面没有跟一个非空格字符 ((?!\S)
, 等于(?=\s|$)
, 空格或字符串结尾)|
- 或@(?!\d)
-@
后面没有数字((?!\d)
是一个否定前瞻,如果在当前位置的右侧有一个匹配失败数字)