Pattern pattern = Pattern.compile("^[a-z]+$");
String string = "abc-def";
assertTrue( pattern.matcher(string).matches() ); // obviously fails
Run Code Online (Sandbox Code Playgroud)
字符类是否可以匹配" - "?
Tom*_*lak 37
不要在字符之间加上减号.
"[a-z-]"
Run Code Online (Sandbox Code Playgroud)
在字符类[...]a -中,如果它被两边的字符包围,则会被特别处理(作为范围运算符).这意味着如果你-在字符类的开头或结尾包含它,它将被字面上处理(非特殊).
所以你可以使用正则表达式:
^[a-z-]+$
Run Code Online (Sandbox Code Playgroud)
要么
^[-a-z]+$
Run Code Online (Sandbox Code Playgroud)
由于-我们添加的内容正在逐字处理,因此无需逃避它.虽然如果你这样做并不是一个错误.
另一种(不太推荐)的方法是不在-字符类中包含:
^(?:[a-z]|-)+$
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下,括号不是可选的,因为|它具有非常低的优先级,因此使用括号:
^[a-z]|-+$
Run Code Online (Sandbox Code Playgroud)
将匹配字符串开头的小写字母和-末尾的一个或多个.
| 归档时间: |
|
| 查看次数: |
16843 次 |
| 最近记录: |