Java 匹配邮政信箱地址的正则表达式

Java 匹配邮政信箱地址的正则表达式,java,regex,Java,Regex,我用这个正则表达式捕捉“PO-Box”字符串。当我在线测试它时,这似乎是可行的,但下面的Java代码打印错误。我犯了什么错误 /^\s*((p(OST)?\s*(O(FF(ICE)?)?)?\s+(B(IN | OX))?)| B(IN | OX))/i 要测试的字符串-邮政信箱1234 String spattern = "/^\\s*((P(OST)?.?\\s*(O(FF(ICE)?)?)?.?\\s+(B(IN|OX))?)|B(IN|OX))/i"; String r

我用这个正则表达式捕捉“PO-Box”字符串。当我在线测试它时,这似乎是可行的,但下面的Java代码打印错误。我犯了什么错误

/^\s*((p(OST)?\s*(O(FF(ICE)?)?)?\s+(B(IN | OX))?)| B(IN | OX))/i

要测试的字符串-邮政信箱1234

    String spattern = "/^\\s*((P(OST)?.?\\s*(O(FF(ICE)?)?)?.?\\s+(B(IN|OX))?)|B(IN|OX))/i";

    String regex = "PO Box 1234";

    Pattern pattern = Pattern.compile(spattern);

    System.out.println(pattern.matcher(regex).matches());

我在上在线测试了这个表达式,它说Java中的测试字符串

是匹配的,您不使用
/regex/flags
格式。相反,你可以这样做

Pattern.compile(regex, flags);
因此,请删除
/
/i
,然后尝试使用

String spattern = "^\\s*((P(OST)?.?\\s*(O(FF(ICE)?)?)?.?\\s+(B(IN|OX))?)|B(IN|OX))";
Pattern pattern = Pattern.compile(spattern, Pattern.CASE_INSENSITIVE);
您还可以将标志直接传递给正则表达式字符串。对于不区分大小写的正则表达式,只需在开头添加
(?i)
。您可以在任何位置添加此标志,具体取决于其影响的范围。例如,如果您像这样放置它,
a(?i)a
regex将能够匹配
aa
aa
,但不能匹配
aa
aa
,因为标记从第一个和第二个
a
之间的点开始工作。类似地,
a((?i)a)a
将匹配
aaa
aaa
,但不会匹配
aaa
aaa
,因为
(?i)
只影响组1(括号中的部分)的范围。更多信息请访问


另外,
matches
方法检查整个字符串是否由正则表达式匹配,而不是字符串是否包含可由正则表达式匹配的部分。可能不使用
匹配
而使用
查找
方法,如

System.out.println(pattern.matcher(regex).find());

改变你的模式如下:

String spattern = "(?i)^\\s*((P(OST)?.?\\s*(O(FF(ICE)?)?)?.?\\s+(B(IN|OX))?)|B(IN|OX))";
如果您知道您不会经常使用您的模式,您可以尝试以下方法:

String myInput = ....

if (myInput.matches(spattern)) {
     // myInput is a PO BOX ...
} else {
     // myInput isn't a PO BOX ...
}

Regex检查邮箱地址,特别是美国地址:

这对我来说非常合适

爪哇:

静态最终字符串thePattern=“(?i)([\w\s*\w](p(OST)?)\s((O(FF(ICE)?))。?\s*(B(IN | OX | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

上述正则表达式将检测到的样本:

邮政信箱:有效

邮政信箱硬纤维瘤1000:有效

本杰明街1316号邮政信箱:有效

布朗之家:无效

社区p框:无效

p:无效

p Binter:无效

JavaScript:

var regex=/^([\w\s*\w](p(OST)?\s((O(FF(ICE)?))。?\s*(B(IN | OX |?)+)[\w\s*\w]|(COMMUNITY\s)?POST(AL)\s*(OFF(ICE)(\s*(BOX | BOZ | BX))?(BOX |(BOX | BX))|(^\s*(BOXOC | p.)/i