Java语言中的转义字符及正则语法中的转义字符在Java字符串中的表示。

ASCLL中的转义字符共有14个:

\o

空字符(NULL)

00H/0

\n

换行符(LF)

0AH/10

\r

回车符(CR)

0DH/13

\t

水平制表符(HT)

09H/9

\v

垂直制表(VT)

0B/11

\a

响铃(BEL)

07/7

\b

退格符(BS)

08H/8

\f

换页符(FF)

0CH/12

\’

单引号

27H/39

\”

双引号

22H/34

\\

反斜杠

5CH/92

\?

问号字符

3F/63

\ddd

任意字符

三位八进制

\xhh

任意字符

二位十六进制

在字符串或字符中只要出现反斜杠就 连同其后的一或多个字符 被认为是一个转义字符并尝试解析之,若不是合法的转义字符就会出错。在大多数语言中均如是,不过可能有些语言里不支持上述所有的转义字符。

语言对转义字符的处理:

在Java中支持的有11个: \0 \n \r \t \b \f \' \" \\ \ddd \xhh ,即在Java中与反斜杠搭配的只能有这11种情况,除此之外的都被认为是有误的。如 "\c" 或 '\c' 都会报错,即使我们本意不是想把前者中的 \c 当做转义字符而是想表示 \ 和 c 这两个字符,但由于语言看到了斜杠就会按转义字符去解析,所以对于前后者都会因解析不成转义字符而报错。故若想表示这两个字符而不报错,就要加以处理以让语言不把它们当做转义字符解析,方法是对斜杠转义(让语言把斜杠当做普通字符而非转义字符的开始)——即 “\\c" 。

正则表达式的字符串表示:(在Java中用字符串表示正则表达式时很常出现上述情况)

在Java中没有什么特殊的语法能直接表示正则表达式,需要用字符串表示之(即在字符串里依次表示正则表达式里的每个字符),JavaScript则好像可以直接表示?

在正则语法中有几个元字符( . $ | ( ) [ { ^ ? * + \ )有特殊含义(如 * 在正则表达式中表示匹配0或多个),根据正则语法若要将这些字符当做普通字符而非元字符来对待则需要加斜杠转义(如当我们想匹配该字符本身,则应该在模式定义中对之转义即 \* ),显然用字符串表示这些元字符的转义字符时(如 "\*")会因为解析不成ASCLL转义字符而报错,解决方法如上所述改为 "\\*" 。一个更极端的例子:在字符串中 \ 是元字符,为了在字符串中表示正则表达式的 \ 就需要两个斜杠即 \\ ;而正则表达式中 \ 也是元字符,为了要匹配  \ 自身,根据正则语法需转义为 \\ ,此时字符串表示就需要四个斜杠即 \\\\ 。

正则表达式中可能出现三种转义字符:预定义的一些正则表达式如表示数字的 \d 表示字符 \w 等、正则语法的元字符当普通字符对待时转义字符(特殊转普通)、ASCLL中的转义字符(普通转特殊)。

总结(正则表达式的字符串形式):根据正则语法定义正则表达式,然后将表达式转为字符串表示:一个简单的规则是正则表达式中的任何一个'\',在字符串中,需要替换为两个'\',(对于ASCLL转义字符反斜杠替不替换均可)。更简单的方式是在IDE(如Eclipse)中将定义好的正则表达式复制到String类型变量的值中,会自动添加 '\' 。

java转义字符包括元字符_语言的转义字符及正则表达式的转义字符的表示相关推荐

  1. java转义字符包括元字符_正则表达式的元字符和转义字符,又及转义字符和ASCII码之间的关系小解...

    1.正则表达式的组合 正则表达式由元字符和转义字符组成 元字符有 ^ :断言目标的开始位置(或多行模式下的行首位置) $ :断言目标的介绍位置(或多行模式下的结尾位置) . :匹配除换行符外的其他任何 ...

  2. java判断颜色合法_判断颜色是否合法的正则表达式(详解)

    判断颜色是否合法的正则表达式(详解) "^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$"; 意思是:以#开头,后面是数字和a-f的字符(大写或小写),这个值是 ...

  3. java疯狂的兔子_语言云(语言技术平台云 LTP-Cloud)

    FAQ 1. 分词时候需要进行扩展字典,自定义字典的格式是怎样的,如何把自定义的字典加载进去? 需要在本地编译ltp(推荐使用linux),编译后调用静态链接库,具体方法见这里:从源代码编译安装LTP ...

  4. Java面对面向程序设计_语言与文化网课章节测试答案

    参考答案如下 万位.语言文十万位都是[ ]A.位数B.数位C.计数单位 化网单层工业厂房屋盖支撑的主要作用是().A.传递屋面板荷载B.传递吊车刹车时产生的冲剪力 关于地下铁路的特点,课章下列说法不正 ...

  5. java偶数的表达式_十六进制数大于10的正则表达式,在Java中长度应为偶数。

    以下是将大于10的十六进制数与偶数长度匹配的正则表达式-^(?=.{10,255}$)(?:0x)?\p{XDigit}{2}(?:\p{XDigit}{2})*$ 哪里,^:匹配句子的开头. (?= ...

  6. java pattern堆栈溢出_堆栈溢出错误与正则表达式进行解析

    我知道有关于正则表达式和长字符串的堆栈溢出错误的一些帖子,但它们没有帮助我,也从不关心我的解析问题类型. 我只是试图从数学函数中找到括号中的字符串,例如 funktionsstring =SIN(3. ...

  7. java双斜线转义_转义字符\(在hive+shell以及java中注意事项):正则表达式的转义字符为双斜线,split函数解析也是正则...

    转义字符将后边字符转义,使特殊功能字符作为普通字符处理,或者普通字符转化为特殊功能字符. 各个语言中都用应用,如java.python.sql.hive.shell等等. 如sql中 "\& ...

  8. java换行转义字符串_回车,换行,转义字符“\r”,“\n”是什么关系?

    1."回车"这个名词的来历. 关于"回车键"的来历,还得从机械英文打字机说起.在机械英文打字机上,有一个部件叫"字车",每打一个字符(原为单 ...

  9. c语言转义字符详解,c语言转义字符(c语言常用转义字符表)

    帮个忙啊,最好是所有的.谢谢 转义字符是C语言中表示字符的一种特殊形式.通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),用于. 转义字符 ...

最新文章

  1. (每日一题)P4841 [集训队作业2013]城市规划 (无向连通图计数)(普通生成函数 + 多项式求逆)
  2. vs2008下设置.h, .lib和 .dll 的路径配置全图及其意义
  3. [Django]我的第一个网页,报错啦~(自己实现过程中遇到问题以及解决办法)
  4. windows 2003内存设置
  5. 回溯算法 python
  6. Mac - 让NSView快捷的实现阴影效果
  7. SpringBoot(九):fastjson、异常处理
  8. php构造函数里抛出异常_构造函数、析构函数抛出异常的问题
  9. 向量叉乘在永磁同步电机电磁转矩计算中的应用
  10. 第10章 数据库运行维护与优化
  11. python operator.add_Python模块:operator简单介绍
  12. java 列表伸缩,微服务实例自动弹性伸缩实践
  13. 3dmax中的UVW 贴图修改器详解(史上最全)
  14. 清风数学建模学习之TOPSIS法
  15. 软件工程之QA管理(好软件系列二)
  16. 历史曲线总结--坚持笔记
  17. 微信支付之JSAPI支付
  18. Roman Numeral Converter--将给定的数字转换为罗马数字
  19. Dubbo源码分析:全集整理
  20. Base64转码和字符串互转

热门文章

  1. 【新品上线】Protected Folder 超简单强大的文件文件夹加密工具 – 20年授权
  2. 中国移动研发出大容量SIM卡
  3. linux中v参数全称,[置顶] linux 命令中的 -v 参数
  4. Away3D学习笔记(4)
  5. 如何选择合适的自动化测试工具?
  6. 模拟肯德基快餐店收银系统
  7. Java_Maven配置集成IDEA_一蓑烟雨任平生
  8. centos6下使用有道云笔记
  9. ChatGPT大流行的思考-设想篇
  10. Swin Transformer: Hierarchical Vision Transformer using Shifted Windows