我有一个下面的正则表达式,如果找到邮政信箱办公室组合,则返回true
\b[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\b
Run Code Online (Sandbox Code Playgroud)
我希望与此完全相反,如果一个特定的字符串具有po票房的组合,那么它应该返回false,否则允许每一件事
请有人帮我这个
伪代码:
if not regex.matches(string)
...
end if
Run Code Online (Sandbox Code Playgroud)
没有简单的方法可以使正则表达式匹配"除了复杂的表达式之外的所有东西".
匹配表达式并否定结果.
另外,你的正则表达式是这样复杂的.尝试
\bp(ost)?[.\s-]*o(ffice)?[.\s-]+box\b
设置单行模式和忽略大小写标志.我认为确实不需要匹配0代替o,但这取决于你.[o0]如果必须,请使用.
小智 7
试试我的:
// leon's p.o. box detection regex
// for better results, trim and compress whitespace first
var pobox_re = /^box[^a-z]|(p[-. ]?o.?[- ]?|post office )b(.|ox)/i,
arr = [
"po box",
"p.o.b.",
"p.o. box",
"po-box",
"p.o.-box",
"PO-Box",
"p.o box",
"pobox",
"p-o-box",
"p-o box",
"post office box",
"P.O. Box",
"PO Box",
"PO box",
"box 122",
"Box122",
"Box-122",
];
for (var i in arr)
console.log(pobox_re.test(arr[i]));
Run Code Online (Sandbox Code Playgroud)