所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
所有的转义字符和所对应的意义:
注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换
所以在拼接特殊字符时可以使用\在特殊字符前面添加上 在实现字符的拼接
ASCII码表 0-127
1.常见的转义字符
字母前面加上反斜线 "\" 来表示常见的那些不能显示的ASCII字符,称为转义字符。如 \0, \t, \n 等。
2.正则表达式中的特殊字符
在表达式中有特殊意义,需要在它前面添加"\"才能当作普通文本字符来使用。
/斜线与\反斜线
① / 斜线, slash或又称为forward slash (前斜线), 原本是标点符号。 起源于古罗马,中世纪时用作逗号(而当时的双斜线//是被当作连接号的,后来演化成等号=)。
a) 英语里的斜线, 最常用的即使替代字符“or”表选择, 比如: Yes/No; 还有就是避免名字的冲突,比如美国的人口普查表中有"Assyrian/Chaldean/Syriac", 就是为了避免因Syriac名字不同叫法而产生的冲突或歧义,其实也是or的含义;
b) 算术; 英文里面称over, 比如: 123/456,也即分数
c) 金钱表示。 $50/- 表示50美元上限, 后面没有了,防止有人添加修改。
d) 日期的表示
② \ backslash, 反斜线, 主要用于电脑中, 也正是对普通/斜线的借鉴。 操作系统(xNix), 电脑语言(C/C++, Perl),编码(部分Unicode)等都使用它。
使用正则表达式regex匹配特殊字符(2种方法记忆):
方法1:首先加"\"匹配该特殊字符本身,然后在转义字符(即"\")前加"\"
方法2:在特殊字符前加"\\"(或者使用[]),特别的"\"需要使用"\\\\"来匹配
3. java中使用正则表达式的情况
(1) String
public booleanmatches(String regex)
public StringreplaceAll(String regex, String replacement)
public StringreplaceFirst(String regex, String replacement)
public String[]split(String regex)
(2) Pattern
public static Patterncompile(String regex)
public static booleanmatches(String regex, CharSequence input)
典型的调用顺序是
Pattern p = pile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
在仅使用一次正则表达式时
boolean b = Pattern.matches("a*b", "aaaaab");
java 示例
/*** @title 密码验证,规则:长度8~30,不能含有#和空格,至少含有数字、大写、小写、特殊字符中的3种* @param password* @return boolean*/private static boolean validatePassword(String password) {if (StringUtils.isBlank(password)) {return false;}// 长度8~30if (password.length() < 8 || password.length() > 30) {return false;}// 不能含有#和空格if (password.contains("#") || password.contains(" ")) {return false;}int typecount = 0;// 如果含有数字if (Pattern.matches(".*[0-9]+.*", password)) {typecount++;}// 如果含有大写字母if (Pattern.matches(".*[A-Z]+.*", password)) {typecount++;}// 如果含有小写字母if (Pattern.matches(".*[a-z]+.*", password)) {typecount++;}// 如果含有特殊字符if (Pattern.matches(".*[^A-Za-z0-9]+.*", password)) {typecount++;}// 至少含有数字、大写、小写、特殊字符中的3种if (typecount < 3) {return false;}return true;}