700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ASCII 碼: 转义字符 正则表达式 特殊字符 模式匹配

ASCII 碼: 转义字符 正则表达式 特殊字符 模式匹配

时间:2023-04-15 18:32:26

相关推荐

ASCII 碼: 转义字符 正则表达式 特殊字符 模式匹配

所有的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;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。