我在下面的Java脚本中有一个正则表达式:
.*(?<![pP].?[oO].? [boxBOX]{3})
基本上,这是检查地址是否包含邮政信箱的任何组合。 但是,在空白和以下某些组合的情况下,它不起作用: 邮局盒子17432 邮政信箱11111 盒222 p0框222
答案 0 :(得分:1)
这是怎么回事:
/(p[.]?[o0][.]?|post\s*?office)\s*?box/gi
发生了什么事
第一个()是一组两个选项,我们匹配一个或另一个
第一个是p[.]?[o0][.]?
,这意味着“ p”后跟一个可选的“”。然后是“ o”或“ 0”,后跟一个可选的“。”。
这将处理'po','p.o。','po。','p.o'
第二部分是/(p[.]?o[.]?|
,这是“邮局”,字词之间没有空格或任何数量的空白字符
下一位\s*?
这表示没有空白字符或任何数量的空白字符
最后一个与“盒子”一词匹配
gi
使搜索成为全局且不区分大小写