否定正则表达式模式的问题
Problems to negate regex pattern
我有几个正则表达式模式,我必须全部否定它们,所以我正在尝试构建 somo 通用正则表达式否定,例如 /^(anypattern)/ 但我遇到了麻烦..
例如,我有这个文本:zzzzzAAAAA@AAAA_AAAzzzzzzAAAAA@AAAA.AAAggggggAAAAA@AAA.AAAooooooooo
和这个模式:[A-Z]+@[A-Z]+\.[A-Z]{2,4}
,我需要一些东西来否定它。我会得到一个包含以下匹配项的数组:
zzzzzAAAAA@AAAA_AAAzzzzzz , gggggg , ooooooooo
请注意,包含 AAAAA@AAAA_AAA
只是因为它有一个 _ 而不是一个点
我的正则表达式都很简单,没有任何这些特殊字符:\s,\t,\r,\n,\v,\f,\b,etc..
我尝试用负面环视解决它但没有成功
尝试完全按照您的正则表达式使用拆分?
var input = "zzzzzAAAAA@AAAA_AAAzzzzzzAAAAA@AAAA.AAAggggggAAAAA@AAA.AAAooooooooo"
var output = input.split(/[A-Z]+@[A-Z]+\.[A-Z]{2,4}/)
console.log(output)
// outputs ["zzzzzAAAAA@AAAA_AAAzzzzzz", "gggggg", "ooooooooo"]
但是,您可能需要清除空元素,请考虑
var input = "AAAAA@AAAA.AAAzzzzzAAAAA@AAAA_AAAzzzzzzAAAAA@AAAA.AAAggggggAAAAA@AAA.AAAooooooooo"
var output = input.split(/[A-Z]+@[A-Z]+\.[A-Z]{2,4}/)
console.log(output)
// outputs ["", "zzzzzAAAAA@AAAA_AAAzzzzzz", "gggggg", "ooooooooo"]
设置输出变量后,您可以添加 this answer
output = output.filter(function(n){ return n != undefined && n.length})
// which outputs ["zzzzzAAAAA@AAAA_AAAzzzzzz", "gggggg", "ooooooooo"]
我有几个正则表达式模式,我必须全部否定它们,所以我正在尝试构建 somo 通用正则表达式否定,例如 /^(anypattern)/ 但我遇到了麻烦..
例如,我有这个文本:zzzzzAAAAA@AAAA_AAAzzzzzzAAAAA@AAAA.AAAggggggAAAAA@AAA.AAAooooooooo
和这个模式:[A-Z]+@[A-Z]+\.[A-Z]{2,4}
,我需要一些东西来否定它。我会得到一个包含以下匹配项的数组:
zzzzzAAAAA@AAAA_AAAzzzzzz , gggggg , ooooooooo
请注意,包含 AAAAA@AAAA_AAA
只是因为它有一个 _ 而不是一个点
我的正则表达式都很简单,没有任何这些特殊字符:\s,\t,\r,\n,\v,\f,\b,etc..
我尝试用负面环视解决它但没有成功
尝试完全按照您的正则表达式使用拆分?
var input = "zzzzzAAAAA@AAAA_AAAzzzzzzAAAAA@AAAA.AAAggggggAAAAA@AAA.AAAooooooooo"
var output = input.split(/[A-Z]+@[A-Z]+\.[A-Z]{2,4}/)
console.log(output)
// outputs ["zzzzzAAAAA@AAAA_AAAzzzzzz", "gggggg", "ooooooooo"]
但是,您可能需要清除空元素,请考虑
var input = "AAAAA@AAAA.AAAzzzzzAAAAA@AAAA_AAAzzzzzzAAAAA@AAAA.AAAggggggAAAAA@AAA.AAAooooooooo"
var output = input.split(/[A-Z]+@[A-Z]+\.[A-Z]{2,4}/)
console.log(output)
// outputs ["", "zzzzzAAAAA@AAAA_AAAzzzzzz", "gggggg", "ooooooooo"]
设置输出变量后,您可以添加 this answer
output = output.filter(function(n){ return n != undefined && n.length})
// which outputs ["zzzzzAAAAA@AAAA_AAAzzzzzz", "gggggg", "ooooooooo"]