如何编写允许用户名中的字符DOT(。)的正则表达式?
例如:
R. Robert
X. A. Pauline
答案 0 :(得分:5)
使用反斜杠逃离点:\.
答案 1 :(得分:3)
[a-zA-Z. ]+
允许使用字母,点和空格字符。
import java.util.regex.*;
public class Test {
public static void main(String [] args) throws Exception {
String RE = "[a-zA-Z. ]+";
String name = args[0];
Pattern pattern = Pattern.compile(RE);
Matcher m = pattern.matcher(name);
System.err.println("`" + RE +
(m.matches()?"' matches `":"' does not match `") +
name + "'");
}
}
运行:
$ java Test "R. Robert"
`[a-zA-Z., ]+' matches `R. Robert'
$ java Test "R.-Robert"
`[a-zA-Z., ]+' does not match `R.-Robert'
答案 2 :(得分:2)
要在正则表达式中搜索一个点,你通常需要将其转义,因为它是一个特殊字符。
使用\.
来逃避。
如果它是捕获组的一部分,则无需转义:
[A-Za-z.]
会搜索字母和'。'字符。
答案 3 :(得分:2)
你的问题不是很明确 - 对于初学者来说,正则表达式不会“允许”或“禁止”任何内容,它们只是匹配(或不匹配)文本。这是调用正则表达式的代码,它将决定做什么(例如正则表达式搜索无效字符的部分匹配,或指定整个白名单的匹配等?)。
在行之间阅读,如果你要求如何在正则表达式中包含文字.
字符,你需要将其转义 - 在(几乎?)所有正则表达式引擎意味着在它前面加上反斜杠
例如,正则表达式:
P\..R
表示“大写P,然后是句点(。),然后是任何字符,然后是大写R”,并且匹配
P.AR
P..R
P.$R
但不是
PEAR
PA.R
P.
P\.AR
等
答案 4 :(得分:0)
角色。是。
例如,如果你想获得字母和点:
[\瓦特] +