ASCII 碼: 转义字符,正则表达式,特殊字符,模式匹配
所有的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 碼: 转义字符,正则表达式,特殊字符,模式匹配相关推荐
- 正则表达式的模式匹配
正则表达式是一个描述字符模式的对象.JavaScript 的 RegExp 类表示正则表达式,String 和 RegExp 都定义了方法,后者使用正则表达式进行强大的模式匹配和文本检索与替换功能. ...
- JavaScript正则表达式的模式匹配教程,并且附带充足的实战代码
JavaScript正则表达式的模式匹配 引言 正文 一.正则表达式定义 二.正则表达式的使用 三.RegExp直接量 (1)正则表达式初体验 (2)深入了解正则 字符类 重复 选择 分组与引用 指定 ...
- ASCII码转换成特殊字符
#region ASCII码转换成特殊字符 ASCIIEncoding shuoming = new ASCIIEncoding(); ...
- http url转义字符和特殊字符处理
根据这个博文,有这些转义 http url转义字符,特殊字符 - yutingliuyl - 博客园 空格 - %20 " - %22 # - %23 % - %25 & - %26 ...
- java 特殊字符_Java正则表达式特殊字符及其处理以及正则表达式详解
在表达式中有特殊意义,需要添加 "\" 才能匹配该字符本身的字符汇总,特别注意:"\"字符本身在正则表示里需要用"\\\\"表示字符说明 ^ ...
- 正则表达式 - 简单模式匹配
目录 一.测试数据 二.简单模式匹配 1. 匹配字面值 2. 匹配数字和非数字字符 (1)带数字 (2)以数字开头 (3)纯数字 (4)带非数字 (5)纯字母 3. 匹配单词与非单词字符 (1)emo ...
- .net mysql 特殊字符转义字符_MySQL 特殊字符转义问题
模糊查询时,很多特殊字符都是有特定意义的,比如%._等,这些在模糊查询中都是通配符. 如果用户在前端的输入是没有限制的,那么,一旦输入相关特殊字符,就会获得错误的查询结果,出于需求的细致要求,这个问题 ...
- linux正则 转义字符,正则表达式(5):转义符
在本博客中,"正则表达式"为一系列文章,如果你想要从头学习怎样在Linux中使用正则,可以参考此系列文章,直达链接如下: "正则"系列的每篇文章都建立在前文的基 ...
- python 正则表达式匹配的位置_python正则表达式匹配 模式匹配
Python正则式的基本用法 初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了.但是对于初学者来说,要用好这个功能还是有点难度 ...
最新文章
- Python 列表和迭代器区别
- 一直觉得饿是什么问题
- linux 运维高级脚本生成器,Linux运维系列,Shell高级脚本自动化编程实战
- J2SE理解之一:声明和访问控制
- 对于javaScript闭包,立即执行函数的用法的一些理解
- equals方法中变量在前和在后的区别
- [渝粤教育] 广东-国家-开放大学 21秋期末考试Java程序设计基础10232k2
- linux之x86裁剪移植---ffmpeg的H264解码显示(420、422)
- “陪护机器人”研报:距离真正“陪护”还差那么一点
- python 前端学习_python学习之路7 前端学习3
- pyQt显示系统文件目录
- 【mysql】left join on and 和 where的区别
- SpringBoot自定义HttpMessageConverter
- 刀塔霸业android安装包,刀塔霸业安卓下载-刀塔霸业安卓官网版(dota2自走棋)下载v1.0...
- 游戏设计的第一步:设计体验
- java 7下载地址
- 用n=4的复化Simpson公式求积分方程的近似解[matlab]
- ## 机械干了一辈子,螺栓上的8.8是什么意思
- 邮箱中已发出的电子邮件发错了怎么撤回?
- java 解码和加密 汉信码_java中的编码与解码
热门文章
- 迅为3A5000_7A2000开发板龙芯全国产处理器LoongArch架构核心方案
- 并行计算综述————第一章 并行计算硬件平台:并行计算机
- RS485硬件标准1-电平定义
- C#编程学习:正则表达式的使用
- 2008上海英雄会,英雄如是说
- Python:folium地图标记icon分组展示
- golang实现图片颜色反转、图片灰度、缩放、转为字符画
- ***.ps1 cannot be loaded because running scripts is disabled on this system. ------vscode编写python遇到
- 探花交友06-即时通信
- miui11升级鸿蒙,MIUI11新版本推送 GPU驱动更新 小米10 Pro跑分轻松突破60万