|   |      1 
                                  321
                             你必须使用哪些字符,哪些字符不能转义,这取决于你所使用的regex风格。 对于PCRE和大多数其他所谓的Perl兼容风格,请转义这些外部字符类: 这些内部字符类: 对于POSIX扩展regex(ere),转义这些外部字符类(与pcre相同): 转义任何其他字符都是posix-ere的错误。 在字符类中,反斜杠是POSIX正则表达式中的一个文本字符。你不能用它来逃避任何事情。如果要将字符类元字符包含为文本,则必须使用“巧妙放置”。将^放在字符类的开头、开头]和开头或结尾以外的任何位置,以逐字匹配这些字符,例如: 在POSIX基本正则表达式(BRE)中,这些元字符需要转义以抑制其含义: BRES中的转义圆括号和花括号赋予了它们在ERES中的特殊含义。有些实现(例如GNU)在转义时也给其他字符赋予了特殊的含义,例如\?+。转义除^$*()以外的字符通常是BRES的错误。 在字符类中,bres遵循与eres相同的规则。 如果所有这些都让你头昏眼花,那就拿一份 RegexBuddy . 在“创建”选项卡上,单击“插入标记”,然后单击“文字”。RegexBuddy将根据需要添加转义。 | 
|   |      2 
                                  49
                             现代Regex香精(PCRE)
   
    包括C、C++、Delphi、EddiPad、Java、JavaScript、Perl、PHP(PREG)、PostgreSQL、PowerGREP、PerfS壳、Python、REALbasic、RealStudio、Ruby、TCL、VB.NET、VBScript、WxWIDGet、XML Schema、XOJO、XRegExp。
     
   任何地方:
    传统Regex口味(bre/ere)
   
    包括awk、ed、egrep、emacs、gnulib、grep、php(ereg)、mysql、oracle、r、sed。
     
   
    ERE/AWK/Egrep/Emacs公司
   
    
 
   字符类之外:
    
   
    BRE/ED/GRIP/SED
   
    
 
   字符类之外:
    笔记
 | 
|   |      3 
                                  21
                             不幸的是,实际上没有一组转义码,因为它根据您使用的语言而变化。 但是,保持像 Regular Expression Tools Page 或者这个 Regular Expression Cheatsheet 能帮你快速过滤掉很多东西。 | 
|   |      4 
                                  4
                             POSIX可以识别正则表达式的多种变体——基本正则表达式(BRE)和扩展正则表达式(ERE)。即便如此,由于POSIX标准化的实用程序的历史实现,仍然存在一些怪癖。 对于何时使用哪个符号,甚至给定命令使用哪个符号,没有一个简单的规则。 看看Jeff Friedl的 Mastering Regular Expressions 书。 | 
|   |      5 
                                  3
                             不幸的是,诸如(和)之类的内容的含义在Emacs样式的正则表达式和大多数其他样式之间交换。所以,如果你试图逃避这些,你可能会做与你想做的相反的事情。 所以你必须知道你要引用的是什么风格。 | 
|   |      6 
                                  3
                             有时,对于您列出的字符,简单的转义是不可能的。例如,在sed中,使用反斜杠来转义括号在替换字符串的左侧不起作用,即 我倾向于使用一个简单的字符类定义,因此上面的表达式变成 我发现它适用于大多数regexp实现。 btw字符类是非常普通的regexp组件,因此它们在大多数情况下都可以工作,在regexp中需要转义字符。 编辑: 在下面的注释之后,我想我会提到一个事实,即在查看regexp评估的行为时,您还必须考虑有限状态自动机和非有限状态自动机之间的区别。 你可以看看“闪亮的球书”,也就是有效的Perl。( sanitised Amazon link ,特别是关于正则表达式的章节,了解regexp引擎计算类型中的差异。 不是所有人都是PCRE! 总之,与 SNOBOL !现在 那个 是一门有趣的编程课程!和上面的那个一起 Simula . 啊,70年代末在新南威尔士大学学习的乐趣!(-) | 
|   |      7 
                                  2
                             实际上,没有。大约有五千多种不同的regex语法;它们似乎归结为perl、emacs/gnu和a t&t一般来说,但我也总是感到惊讶。 | 
|   |      8 
                                  1
                             对于php,“在非字母数字前面加上\”以指定它代表自身是安全的。”。- http://php.net/manual/en/regexp.reference.escape.php . 除非是“或”。: 要在PHP中转义regex模式变量(或部分变量),请使用preg_quote()。 | 
|   | DotFX · RegEx捕获关键字前但括号后的所有内容 8 月前 | 
|   | Andrus · 如何在sql中查找第二个匹配项 9 月前 | 
|   | iato · 确保正则表达式不从命名材料中的数字中提取 9 月前 | 
|   | vr8ce · 非成对标记中特定字符的正则表达式 9 月前 | 
|   | MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 9 月前 | 
|   | Carsten · 使用最近的搜索模式更改文本块 10 月前 |