`
senton
  • 浏览: 200445 次
  • 性别: Icon_minigender_1
  • 来自: 紫禁城
社区版块
存档分类
最新评论

正则表达式中问号等特殊字符的转义

    博客分类:
  • J2SE
阅读更多

正则表达式中问号等特殊字符的转义

除 .$ ^ { [ ( | ) * + ? \ 外,其他字符与自身匹配。
但是其中并未注明这些字符应该匹配为什么字符。
为了方便自己以后查阅,也为了方便网友搜索,我在网上查了很多资料就把所知的都写在这里了。

点的转义:. ==> \\u002E
美元符号的转义:$ ==> \\u0024
乘方符号的转义:^ ==> \\u005E
左大括号的转义:{ ==> \\u007B
左方括号的转义:[ ==> \\u005B
左圆括号的转义:( ==> \\u0028
竖线的转义:| ==> \\u007C
右圆括号的转义:) ==> \\u0029
星号的转义:* ==> \\u002A
加号的转义:+ ==> \\u002B
问号的转义:? ==> \\u003F
反斜杠的转义:\ ==> \\u005C
 

分享到:
评论
1 楼 ldeng76 2009-04-09  
我写了一个js的转义函数:

function escape4Reg(s){
  var buf = [];
  for(var i=0;i<s.length;i++){
    var c=s.charAt(i);
    switch (c) {
      case '.' : buf.push('\\x2E');break;
      case '$' : buf.push('\\x24');break;
      case '^' : buf.push('\\x5E');break;
      case '{' : buf.push('\\x7B');break;
      case '[' : buf.push('\\x5B');break;
      case '(' : buf.push('\\x28');break;
      case '|' : buf.push('\\x28');break;
      case ')' : buf.push('\\x29');break;
      case '*' : buf.push('\\x2A');break;
      case '+' : buf.push('\\x2B');break;
      case '?' : buf.push('\\x3F');break;
      case '\\' : buf.push('\\x5C');break;
      default : buf.push(c);
    }
  }
  return buf.join('');
}

//测试代码:
escape4Reg('a[');

注:我没有使用 \u0024这种形式,因为\xXX更简单一点.

以下规则供参考:
3.1 表达式中,可以使用 "\xXX" 和 "\uXXXX" 表示一个字符("X" 表示一个十六进制数)

形式
字符范围

\xXX
编号在 0 ~ 255 范围的字符,比如:空格可以使用 "\x20" 表示

\uXXXX
任何字符可以使用 "\u" 再加上其编号的4位十六进制数表示,比如:"\u4E2D"

相关推荐

    正则表达式特殊字符的转义

    正则表达式特殊字符的转义,常用网页特殊字符转义,网络爬虫特殊字符处理

    正则表达式-字符转义 .net .xlsx

    正则表达式在。net下的转义符意义 正则表达式是正则表达式引擎尝试匹配输入文本的一种模式。 模式由一个或多个字符文本、运算符或构造组成

    正则表达式中需要转移的字符

    正则表达式中需要转移的字符,列举了在写正则表达式时需要转义的字符

    正则表达式 特殊字符

    正则表达式需要转义的特殊字符 一定要注意书写规范。

    Java正则表达式处理特殊字符转义的方法

    由于正则表达式定了一些特殊字符,而有时候需要对这些特殊字符进行匹配的话就需要进行转义了,下面这篇文章主要给大家介绍了Java正则表达式处理特殊字符转义的方法,需要的朋友可以参考借鉴,下面来一起看看吧。

    qt正则表达式测试工具

    Qt正则表达式测试工具,可以直接测试正则表达式是否正确。注意:工具中测试好的表达式,写到代码里面需要加转义字符

    正则表达式语法

    在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。 所以,在其他的语言中,一个反斜杠\就足以具有转义的作用,而在正则表达式中则需要有两个反斜杠才能被解析为其他语言中的...

    正则表达式

    除此之外正则表达式中有一些特殊的字符,这些字符在正则表达式中有特殊的用途,如前面介绍的反斜线(\),如果需要匹配这些字符,必须首先将这些字符转义,也就是再前面添加一个反斜线(\).正则表达式中的特殊字符: 1)...

    从零开始学习正则表达式

    正则表达式语法(01): 关于大小写与中文 正则表达式语法(02): 或者与重复 正则表达式语法(03): 匹配范围 正则表达式语法(04): 常用转义字符与 . 正则表达式语法(05): 边界 正则表达式语法(06): 贪婪匹配与非贪婪匹配 ...

    正则表达式30分钟入门

    学习正则表达式快速入门的法宝。 语言深入浅出,举例实用、典型。 1、本文目标 2、如何使用本教程 3、正则表达式到底是什么东西? 4、入门 5、测试正则表达式 6、元字符 7、字符转义 8、重复 9、字符类 10、分枝条件...

    正则表达式 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。

    30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符...

    正则表达式基本语法,各类字符的转义

    只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。  只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。  只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。  只能输入由数字、26个英文...

    正则表达式三十分钟入门教程

    比较全的正则表达式 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 ...

    escapestringregexp特殊字符转义正则表达式

    escape-string-regexp - 特殊字符转义正则表达式

    MySQL的正则表达式

    MySQL的正则表达式

    正则表达式30分钟入门教程

    7. 字符转义 8. 重复 9. 字符类 10. 分枝条件 11. 反义 12. 分组 13. 后向引用 14. 零宽断言 15. 负向零宽断言 16. 注释 17. 贪婪与懒惰 18. 处理选项 19. 平衡组/递归匹配 20. 还有些什么东西没提到 ...

    精通正则表达式~~~

    作为正则表达式的字符串... 101 字符编码... 105 正则模式和匹配模式... 110 常用的元字符和特性... 113 字符表示法... 115 字符组及相关结构... 118 锚点及其他“零长度断言” 129 注释和模式量词... 135 ...

    18.C#字符串和正则表达式参考手册 影印版

    C#字符串和正则表达式参考手册 目 录 第1章 系统处理文本的方式 1 1.1 .NET Framework 1 1.1.1 公共语言运行时 2 1.1.2 .NET Framework类库 3 1.2 文本是一种数据类型 4 1.2.1 C#的数据类型 5 1.2.2 字符和字符集 6 ...

    正则表达式入门

    • 本文目标 • 如何使用本教程 ...• 字符转义 • 重复 • 字符类 • 分枝条件 • 反义 • 分组 • 后向引用 • 零宽断言 • 负向零宽断言 • 注释 • 贪婪与懒惰 • 处理选项 • 平衡组/递归匹配

Global site tag (gtag.js) - Google Analytics