我必须限制该市的APO FPO地址。我已经通过使用此正则表达式完成了
var regExp : RegExp = new RegExp('^[af][ .]?p[ .]?o|[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]','i');
当仅存在
APO
,FPO
,A.p.o
,F.P.O
等模式时,此方法有效,但在城市为APOPKO
的情况下(即使不应该发生)仍然匹配。我尝试在
\b
之后给出[af][ .]?p[ .]?o
,但对我不起作用。有人可以帮忙吗提前致谢。
最佳答案
您可以使用
^([af][ .]?p[ .]?o|[Pp]*(OST|ost)*)\b\.*\s*[Oo0]*(ffice|FFICE)*\.*\s*[Bb][Oo0][Xx]
请参见regex demo
我稍微整理了一下模式,但POI是
^([af][ .]?p[ .]?o|[Pp]*(OST|ost)*)\b
:^
-字符串开始(
-一组:匹配任一...[af][ .]?p[ .]?o
-类似apo
的字符串:[af]
匹配a
或f
,然后[ .]?
匹配可选的(1或0)空格或点,然后p
匹配p
,然后再次[ .]?
子模式,并且o
匹配o
。|
-或[Pp]*(OST|ost)*)
-匹配p
或P
0+次(也许是?
-1或0次),然后匹配OST
或ost
,再匹配0+次。\b
-尾随单词边界