繁体   English   中英

正则表达式匹配包含 18 位数字的 substring 但如果它以 @ 开头则不匹配

[英]Regex to match substring containing 18 digits but don't match if it starts with @

我一直在寻找解决方案,并尝试了一些示例,但找不到我正在寻找的东西。 (我正在使用 JavaScript)

基本上,如果第一个字符不是@ ,它应该只匹配一个 18 位数字的字符串,它应该只包含 18 位数字。

所以像/[^@]\d{18}/g但如果我这样做它包括第一个不是@的字符

示例: test 123456789012345678 abc匹配123456789012345678

test @123456789012345678 abc不匹配。

一种选择是匹配 @ 和您不想要的数字,然后在您想要保留的捕获组 1 中捕获单词边界\b之间的 18 位数字。

单词边界是为了防止数字的部分匹配。

@\d|\b(\d{18})\b

正则表达式演示

如果支持,您还可以使用否定的lookbehind:

\b(?<!@)\d{18}\b

正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM