[英]How do you write a regular expression that allows the special character DOT?
如何编写允许用户名中包含字符 DOT(.) 的正则表达式?
例如:
R. Robert
X. A. Pauline
用反斜杠转义点: \.
[a-zA-Z. ]+
[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'
要在正则表达式中搜索点,您通常需要对其进行转义,因为它是一个特殊字符。
使用\.
逃离。
如果它是捕获组的一部分,则无需转义:
[A-Za-z.]
将搜索字母和 '.' 特点。
你的问题不是很清楚 - 对于初学者来说,正则表达式不会“允许”或“禁止”任何东西,它们只是匹配(或不匹配)文本。 调用正则表达式的代码将决定做什么(例如,正则表达式是搜索无效字符的部分匹配,还是为整个白名单指定匹配,等等?)。
如果您要询问如何包含文字,请在两行之间阅读.
正则表达式中的字符,您需要对其进行转义 - 在(几乎?)所有正则表达式引擎中,这意味着在它前面加上一个反斜杠。
例如,正则表达式:
P\..R
表示“大写 P,然后是句点 (.),然后是任何字符,然后是大写 R”,并且会匹配
P.AR
P..R
P.$R
但不是
PEAR
PA.R
P.
P\.AR
等等
性格。 是。
例如,如果您想获取字母和点:
[\w.]+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.