`
senton
  • 浏览: 205903 次
  • 性别: 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"

相关推荐

    正则表达式中符号含义大全

    ### 正则表达式中符号含义详解 #### 引言 正则表达式是一种强大的文本匹配工具,广泛应用于各种编程语言和工具中,用于搜索、替换以及提取特定格式的文本内容。掌握正则表达式的各种符号及其含义对于高效地进行文本...

    正则表达式 特殊字符

    如果在正则表达式中直接使用这些字符而不进行转义,则会被解释为具有特殊功能的符号,而非普通字符。以下是从给定文件的部分内容中提炼出的正则表达式特殊字符及其使用规范: 1. **^ 和 $**:分别表示字符串的开始...

    关于正则表达式的应用(正则表达式)

    点(.)在正则表达式中通常表示匹配任意字符,除了换行符,但可以通过转义(\)使其匹配字面的点。 2. 修正字符:星号(*)、加号(+)、问号(?)和花括号({})用于控制元字符的重复次数。星号表示零次或多次,...

    正则表达式详细介绍

    此外,正则表达式中还有一组被保留作特殊用途的元字符,如括号[]用于字符集匹配,反斜杠用于转义,脱字符^用于表示行的开始,美元符号$表示行的结束,竖线|用作选择(或关系),问号?表示零个或一个匹配,星号*表示...

    精通正则表达式&正则表达式经典实例

    1. **基础概念**:正则表达式由字符和特殊符号组成,用于定义一种模式。基础字符包括字母、数字、空格等,而特殊符号如星号(*)、加号(+)、问号(?)和花括号({})等则用于定义重复次数和选择。 2. **元字符**...

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

    在正则表达式的使用过程中,了解哪些字符需要被转义是非常重要的。正则表达式是一种强大的文本处理工具,它能够帮助我们实现对字符串的搜索、替换等操作。然而,在某些情况下,我们需要对某些特殊字符进行转义才能...

    php正则表达式手册

    此外,还涉及到了正则表达式中的一些特殊结构,如锚点(用于定位字符串的开始和结束)和零宽断言(匹配某些内容但不包含在匹配结果中)。 参考文献部分则为学习者提供了扩展阅读材料,以便更深入地理解正则表达式的...

    正则表达式参考手册

    反斜杠 "\" 在正则表达式中有特殊作用,它用于转义元字符,从而匹配元字符本身。比如,"\$" 用来匹配美元符号 "$",而不是行尾。 方括号表示字符集,匹配括号中的任何一个字符。例如,"[aou]" 表示匹配 'a'、'o' 或...

    史上最好的正则表达式教程.pdf

    2. 字符转义:正则表达式中要匹配特殊字符本身时,需要使用反斜杠对特殊字符进行转义,例如要匹配点号,必须写为"\."。 3. 重复:用于指定字符或字符集出现的次数,常见的重复字符有星号(*)表示零次或多次,加号...

    python正则表达式使用指南

    - **反斜杠的麻烦**:反斜杠(\)在正则表达式中用于转义特殊字符,但也会在字符串字面量中产生混淆。 - **执行匹配**:使用`match()`、`search()`等方法进行字符串匹配。 - **模块级函数**:除了对象方法,`re`...

    最详细正则表达式教程、最好正则表达式参考

    1. **元字符**:在正则表达式中,元字符具有特殊的含义,不表示其本身的字面值。例如: - `\b`:匹配单词边界,用于精确匹配单词。 - `.`:匹配任何非换行符的单个字符。 - `*`:匹配前面的元素零次或多次。 - `...

    正则表达式 普通字符

    正则表达式主要由普通字符、特殊字符和限定符等元素组成: 1. **普通字符**:由所有未被明确指定为特殊字符的打印和非打印字符组成,例如字母、数字和标点符号等。 2. **特殊字符**:具有特定含义的字符,如星号 `*...

    正则表达式分析工具V2.0

    正则表达式的语法包含了一系列特殊字符和构造,如点号(.)代表任意字符,星号(*)表示前一个字符可以重复零次或多次,加号(+)表示至少一次,问号(?)表示零次或一次,以及方括号([])用于定义字符集。此外,...

    Java正则表达式详细讲解

    正则表达式中,特殊字符需要转义,如`\d`实际是`\D`的反义,所以`\\d`匹配数字。 ### 12. 实例分析 下面是一些Java正则表达式的实例,包括邮箱验证、URL验证等。 ```java String emailRegex = "^[\\w-]+(\\.[\\w-...

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    本教程的目标是让读者快速理解正则表达式的概念,学会基本的语法结构,并能应用到实际的Python代码中,进行字符串匹配和处理。 二、如何使用本教程 建议读者跟随教程的步骤,逐步实践每个例子,加深理解和记忆。...

    正则表达式素材5

    《正则表达式入门经典》是一本由(美)瓦特编著的教材,书中详细介绍了正则表达式的语法和用法,包括基础的字符匹配、量词、分组、选择与分支、位置匹配等核心概念。此外,书中可能还涵盖了高级特性,如回溯、预查、...

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

    正则表达式中的特殊字符转义通常通过在字符前添加反斜杠`\`来实现。例如,如果要匹配一个实际的星号`*`,我们需要写成`\*`。同样的,其他特殊字符如圆括号`()`、点`.`、方括号`[]`、问号`?`、反斜杠`\`、花括号`{}`...

    正则表达式简明参考.pdf

    正则表达式是一种用于匹配字符串...以上知识点总结了正则表达式的核心用法,包括元字符、字符转义、字符类、反义、分支、分组、反向引用、零宽断言、贪婪与懒惰以及处理选项等,为熟练使用正则表达式提供了基本的指导。

Global site tag (gtag.js) - Google Analytics