如何使用正则表达式匹配缺少@符号的email开头数据行
匹配无@符号的email开头行正则方案
可以通过负向前瞻实现你的需求,无需其他复杂逻辑。
最终可用正则表达式
如果你要匹配的行没有额外引号包裹内容,使用:
^email:(?!.*@).*$
如果实际业务中email字段值是用双引号包裹的,可使用适配版本:
^email: "(?!.*@).*"$
规则说明
^:锚定匹配行的起始位置,确保只匹配以指定内容开头的行email::匹配固定的行前缀(?!.*@):负向前瞻断言,判定当前位置往后的整行内容中不存在@符号,只有满足这个条件才会继续后续匹配.*:匹配行内前缀之后的所有剩余内容$:锚定匹配行的结束位置
匹配效果
针对你提供的示例文本,该正则会精准命中以下两行:
email: baz.comemail: blah blah blah
自动跳过带@的合法邮箱行、以及非email开头的其他行。
内容的提问来源于stack exchange,提问作者nao
相关产品推荐
相关产品推荐

