所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

所有的转义字符和所对应的意义:

转义字符

意义

ASCII码值(十进制)

\a

响铃(BEL)

007

\b

退格(BS) ,将当前位置移到前一列

008

\f

换页(FF),将当前位置移到下页开头

012

\n

换行(LF) ,将当前位置移到下一行开头

010

\r

回车(CR) ,将当前位置移到本行开头

013

\t

水平制表(HT) (跳到下一个TAB位置)

009

\v

垂直制表(VT)

011

\\

代表一个反斜线字符''\'

092

\'

代表一个单引号(撇号)字符

039

\"

代表一个双引号字符

034

\?
  
代表一个问号
  
063
  

\0

空字符(NULL)

000

\ooo

1到3位八进制数所代表的任意字符

三位八进制

\xhh

1到2位十六进制所代表的任意字符

二位十六进制

注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换

所以在拼接特殊字符时可以使用\在特殊字符前面添加上   在实现字符的拼接

ASCII码表 0-127

Bin Dec Hex 缩写/字符 解释
00000000 0 00 NUL(null) 空字符
00000001 1 01 SOH(start of headling) 标题开始
00000010 2 02 STX (start of text) 正文开始
00000011 3 03 ETX (end of text) 正文结束
00000100 4 04 EOT (end of transmission) 传输结束
00000101 5 05 ENQ (enquiry) 请求
00000110 6 06 ACK (acknowledge) 收到通知
00000111 7 07 BEL (bell) 响铃
00001000 8 08 BS (backspace) 退格
00001001 9 09 HT (horizontal tab) 水平制表符
00001010 10 0A LF (NL line feed, new line) 换行键
00001011 11 0B VT (vertical tab) 垂直制表符
00001100 12 0C FF (NP form feed, new page) 换页键
00001101 13 0D CR (carriage return) 回车键
00001110 14 0E SO (shift out) 不用切换
00001111 15 0F SI (shift in) 启用切换
00010000 16 10 DLE (data link escape) 数据链路转义
00010001 17 11 DC1 (device control 1) 设备控制1
00010010 18 12 DC2 (device control 2) 设备控制2
00010011 19 13 DC3 (device control 3) 设备控制3
00010100 20 14 DC4 (device control 4) 设备控制4
00010101 21 15 NAK (negative acknowledge) 拒绝接收
00010110 22 16 SYN (synchronous idle) 同步空闲
00010111 23 17 ETB (end of trans. block) 传输块结束
00011000 24 18 CAN (cancel) 取消
00011001 25 19 EM (end of medium) 介质中断
00011010 26 1A SUB (substitute) 替补
00011011 27 1B ESC (escape) 溢出
00011100 28 1C FS (file separator) 文件分割符
00011101 29 1D GS (group separator) 分组符
00011110 30 1E RS (record separator) 记录分离符
00011111 31 1F US (unit separator) 单元分隔符
00100000 32 20 (space) 空格
00100001 33 21 !  
00100010 34 22 "  
00100011 35 23 #  
00100100 36 24 $  
00100101 37 25 %  
00100110 38 26 &  
00100111 39 27 '  
00101000 40 28 (  
00101001 41 29 )  
00101010 42 2A *  
00101011 43 2B +  
00101100 44 2C ,  
00101101 45 2D -  
00101110 46 2E .  
00101111 47 2F /  
00110000 48 30 0  
00110001 49 31 1  
00110010 50 32 2  
00110011 51 33 3  
00110100 52 34 4  
00110101 53 35 5  
00110110 54 36 6  
00110111 55 37 7  
00111000 56 38 8  
00111001 57 39 9  
00111010 58 3A :  
00111011 59 3B ;  
00111100 60 3C <  
00111101 61 3D =  
00111110 62 3E >  
00111111 63 3F ?  
01000000 64 40 @  
01000001 65 41 A  
01000010 66 42 B  
01000011 67 43 C  
01000100 68 44 D  
01000101 69 45 E  
01000110 70 46 F  
01000111 71 47 G  
01001000 72 48 H  
01001001 73 49 I  
01001010 74 4A J  
01001011 75 4B K  
01001100 76 4C L  
01001101 77 4D M  
01001110 78 4E N  
01001111 79 4F O  
01010000 80 50 P  
01010001 81 51 Q  
01010010 82 52 R  
01010011 83 53 S  
01010100 84 54 T  
01010101 85 55 U  
01010110 86 56 V  
01010111 87 57 W  
01011000 88 58 X  
01011001 89 59 Y  
01011010 90 5A Z  
01011011 91 5B [  
01011100 92 5C \  
01011101 93 5D ]  
01011110 94 5E ^  
01011111 95 5F _  
01100000 96 60 `  
01100001 97 61 a  
01100010 98 62 b  
01100011 99 63 c  
01100100 100 64 d  
01100101 101 65 e  
01100110 102 66 f  
01100111 103 67 g  
01101000 104 68 h  
01101001 105 69 i  
01101010 106 6A j  
01101011 107 6B k  
01101100 108 6C l  
01101101 109 6D m  
01101110 110 6E n  
01101111 111 6F o  
01110000 112 70 p  
01110001 113 71 q  
01110010 114 72 r  
01110011 115 73 s  
01110100 116 74 t  
01110101 117 75 u  
01110110 118 76 v  
01110111 119 77 w  
01111000 120 78 x  
01111001 121 79 y  
01111010 122 7A z  
01111011 123 7B {  
01111100 124 7C |  
01111101 125 7D }  
01111110 126 7E ~  
01111111 127 7F DEL (delete) 删除

1. 常见的转义字符

字母前面加上反斜线 "\" 来表示常见的那些不能显示的ASCII字符,称为转义字符。如 \0, \t, \n 等。

转义字符

意义

ASCII码值(十进制)

\a

响铃(BEL)

007

\b

退格(BS) ,将当前位置移到前一列

008

\f

换页(FF),将当前位置移到下页开头

012

\n

换行(LF) ,将当前位置移到下一行开头

010

\r

回车(CR) ,将当前位置移到本行开头

013

\t

水平制表(HT) (跳到下一个TAB位置)

009

\v

垂直制表(VT)

011

\\

代表一个反斜线字符''\'

092

\'

代表一个单引号(撇号)字符

039

\"

代表一个双引号字符

034

\0

空字符(NULL)

000

\ddd

1到3位八进制数所代表的任意字符

三位八进制

\xhh

1到2位十六进制所代表的任意字符

二位十六进制

 

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:在特殊字符前加"\\"(或者使用[]),特别的"\"需要使用"\\\\"来匹配

字符

说明

input

regex1

regex2

^

匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 "\^"

"^"

\\^

[^]

$

匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 "\$"

"$"

\\$

[$]

.

匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 "\."

"."

\\.

[.]

[ ]

用来自定义能够匹配 '多种字符' 的表达式。要匹配中括号,请使用 "\[" 和 "\]"

"["

\\[

[\\[]

*

修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "\*"

"*"

\\*

[*]

\

将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。

"\\"

\\\\

 

?

修饰匹配次数为 0 次或 1 。要匹配 "?" 字符本身,请使用 "\?"

"?"

\\?

[?]

+

修饰匹配次数为至少 1。要匹配 "+" 字符本身,请使用 "\+"

"+"

\\+

[+]

{ }

修饰匹配次数的符号。要匹配大括号,请使用 "\{" 和 "\}"

"{"

\\{

[{]

|

左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "\|"

"|"

\\|

[|]

( )

标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "\(" 和 "\)"

"("

\\(

[(]

 

3. java中使用正则表达式的情况

(1) String

public boolean matches(String regex)

public String replaceAll(String regex, String replacement)

public String replaceFirst(String regex, String replacement)

public String[] split(String regex)

 

(2) Pattern

public static Pattern compile(String regex)

public static boolean matches(String regex, CharSequence input)

典型的调用顺序是

Pattern p = Pattern.compile("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;}

ASCII 碼: 转义字符,正则表达式,特殊字符,模式匹配相关推荐

  1. 正则表达式的模式匹配

    正则表达式是一个描述字符模式的对象.JavaScript 的 RegExp 类表示正则表达式,String 和 RegExp 都定义了方法,后者使用正则表达式进行强大的模式匹配和文本检索与替换功能. ...

  2. JavaScript正则表达式的模式匹配教程,并且附带充足的实战代码

    JavaScript正则表达式的模式匹配 引言 正文 一.正则表达式定义 二.正则表达式的使用 三.RegExp直接量 (1)正则表达式初体验 (2)深入了解正则 字符类 重复 选择 分组与引用 指定 ...

  3. ASCII码转换成特殊字符

    #region ASCII码转换成特殊字符                         ASCIIEncoding shuoming = new ASCIIEncoding();          ...

  4. http url转义字符和特殊字符处理

    根据这个博文,有这些转义 http url转义字符,特殊字符 - yutingliuyl - 博客园 空格 - %20 " - %22 # - %23 % - %25 & - %26 ...

  5. java 特殊字符_Java正则表达式特殊字符及其处理以及正则表达式详解

    在表达式中有特殊意义,需要添加 "\" 才能匹配该字符本身的字符汇总,特别注意:"\"字符本身在正则表示里需要用"\\\\"表示字符说明 ^ ...

  6. 正则表达式 - 简单模式匹配

    目录 一.测试数据 二.简单模式匹配 1. 匹配字面值 2. 匹配数字和非数字字符 (1)带数字 (2)以数字开头 (3)纯数字 (4)带非数字 (5)纯字母 3. 匹配单词与非单词字符 (1)emo ...

  7. .net mysql 特殊字符转义字符_MySQL 特殊字符转义问题

    模糊查询时,很多特殊字符都是有特定意义的,比如%._等,这些在模糊查询中都是通配符. 如果用户在前端的输入是没有限制的,那么,一旦输入相关特殊字符,就会获得错误的查询结果,出于需求的细致要求,这个问题 ...

  8. linux正则 转义字符,正则表达式(5):转义符

    在本博客中,"正则表达式"为一系列文章,如果你想要从头学习怎样在Linux中使用正则,可以参考此系列文章,直达链接如下: "正则"系列的每篇文章都建立在前文的基 ...

  9. python 正则表达式匹配的位置_python正则表达式匹配 模式匹配

    Python正则式的基本用法 初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了.但是对于初学者来说,要用好这个功能还是有点难度 ...

最新文章

  1. Python 列表和迭代器区别
  2. 一直觉得饿是什么问题
  3. linux 运维高级脚本生成器,Linux运维系列,Shell高级脚本自动化编程实战
  4. J2SE理解之一:声明和访问控制
  5. 对于javaScript闭包,立即执行函数的用法的一些理解
  6. equals方法中变量在前和在后的区别
  7. [渝粤教育] 广东-国家-开放大学 21秋期末考试Java程序设计基础10232k2
  8. linux之x86裁剪移植---ffmpeg的H264解码显示(420、422)
  9. “陪护机器人”研报:距离真正“陪护”还差那么一点
  10. python 前端学习_python学习之路7 前端学习3
  11. pyQt显示系统文件目录
  12. 【mysql】left join on and 和 where的区别
  13. SpringBoot自定义HttpMessageConverter
  14. 刀塔霸业android安装包,刀塔霸业安卓下载-刀塔霸业安卓官网版(dota2自走棋)下载v1.0...
  15. 游戏设计的第一步:设计体验
  16. java 7下载地址
  17. 用n=4的复化Simpson公式求积分方程的近似解[matlab]
  18. ## 机械干了一辈子,螺栓上的8.8是什么意思
  19. 邮箱中已发出的电子邮件发错了怎么撤回?
  20. java 解码和加密 汉信码_java中的编码与解码

热门文章

  1. 迅为3A5000_7A2000开发板龙芯全国产处理器LoongArch架构核心方案
  2. 并行计算综述————第一章 并行计算硬件平台:并行计算机
  3. RS485硬件标准1-电平定义
  4. C#编程学习:正则表达式的使用
  5. 2008上海英雄会,英雄如是说
  6. Python:folium地图标记icon分组展示
  7. golang实现图片颜色反转、图片灰度、缩放、转为字符画
  8. ***.ps1 cannot be loaded because running scripts is disabled on this system. ------vscode编写python遇到
  9. 探花交友06-即时通信
  10. miui11升级鸿蒙,MIUI11新版本推送 GPU驱动更新 小米10 Pro跑分轻松突破60万