如何使此正则表达式匹配空格?目前,它只能匹配以下内容:
abcdatcsdotuniversitydotedu
我希望能够做到以下几点:
abcd at cs dot university dot edu
这是正则表达式:
([A-Za-z][A-Za-z0-9.\\-_]*)\\s[ ]?(at)[ ]*([A-Za-z][A-Za-z0-9\\-_(dot)]*[ ]?(dot)[ ]*[A-Za-z]+)
答案 0 :(得分:3)
\s
匹配空白字符,当在java字符串中使用它时,您需要转义\
,因此它将是\\s
。如果您想匹配零或多个空格,请使用\\s*
。
这将匹配单个域和TLD:
([A-Za-z][A-Za-z0-9.\\-_]*)\\s*(at)\\s*([A-Za-z][A-Za-z0-9\\-_()]*\\s*(dot)\\s*[A-Za-z]+)
但是,您尝试匹配多个级别的子域,因此您需要将([A-Za-z][A-Za-z0-9\\-_()]*\\s*(dot)\\s*
中的正则表达式()+
的域部分包装起来以获取其中的一个或多个:< / p>
([A-Za-z][A-Za-z0-9.\\-_]*)\\s*(at)\\s*(([A-Za-z][A-Za-z0-9\\-_()]*\\s*(dot)\\s*)+[A-Za-z]+)
^ ^^
这样的事情:
public class RegexpMatch {
static Pattern Regex = Pattern.compile(
"([A-Za-z][A-Za-z0-9.\\-_]*)\\s*(at)\\s*(([A-Za-z][A-Za-z0-9\\-_()]*\\s*(dot)\\s*)+[A-Za-z]+)"
);
public static void main( final String[] args ){
final String[] tests = {
"abcdatcsdotuniversitydotedu",
"abcd at cs dot university dot edu"
};
for ( final String test : tests )
System.out.println( test + " - " + ( Regex.matcher( test ).matches() ? "Match" : "No Match" ) );
}
}
哪个输出:
abcdatcsdotuniversitydotedu - Match
abcd at cs dot university dot edu - Match
答案 1 :(得分:0)
<mat-tab-group>
<mat-tab label="First"> Content 1 </mat-tab>
<mat-tab label="Second"> Content 2 </mat-tab>
<mat-tab label="Third"> Content 3 </mat-tab>
</mat-tab-group>
\ p {L}匹配类别“字母”中的单个代码点。
\ p {N}与任何脚本中的任何数字字符匹配。
我正在使用此代码。