提问者:小点点

Reference-这个regex是什么意思?


这是一个常见问答的集合。 这也是一个社区Wiki,所以邀请大家参与维护。

regex是苦于给我ze代码类型的问题和没有解释的拙劣答案。 此参考旨在提供质量问答的链接。

这个引用指的是以下语言:php,perl,javascript,python,ruby,Java,。NET。

这可能过于宽泛,但这些语言共享相同的语法。 对于特定的特性,后面有语言标记,例如:

  • 什么是正则表达式平衡组? 。NET

共1个答案

匿名用户

请参阅regex标签详细信息页面中的许多一般提示和有用链接。

联机教程

  • 正则表达式
  • 正则表达式信息

量词

  • 零或多:*:贪婪,*?:勉强,*+:占有欲
  • 一个或多个:+:贪婪,+?:勉强,++:占有欲
  • :可选(零或一)
  • 最小/最大范围(包括所有范围):{n,m}:介于n和; m,{n,}:n或更多,{n}:正好n
  • 贪心,不情愿(又名“懒惰”,“不贪心”)与所有格量词的区别:
    • 贪婪vs.勉强vs.所有格量词
    • 浅谈贪婪与非贪婪的区别
    • {n}{n}之间有什么区别?
    • 有人能给我解释一下所有格量词吗? php,perl,Java,Ruby
    • 模拟物主量词.net
    • 非堆栈溢出引用:来自Oracle,regular-expressions.info

    字符类

    • 方括号和圆括号之间有什么区别?
    • [...]:任意一个字符,[^...]:否定/除
    • 之外的任何字符
    • [^]匹配任意一个字符,包括换行符JavaScript
    • [\w-[\d]]/[a-z-[qz]]:设置减法。NET,xml-schema,xpath,jgsoft
    • [\w&&[^\d]]:设置交集Java,ruby 1.9+
    • [[:alpha:]]:POSIX字符类
    • 为什么[^\\d2][^[^0-9]2][^2[^0-9]]在Java得到不同的结果? Java
    • 速记:
      • 数字:\d:数字,\d:非数字
      • 单词字符(字母,数字,下划线):\w:单词字符,\w:非单词字符
      • 空格:\s:空格,\s:非空格

      转义序列

      • 水平空格:\h:space-or-tab,\t:tab
      • 换行:
        • \r\n:回车和换行
        • \r:通用换行php Java-8

        • ^:行/输入的开始,\b:单词边界,以及\b:非单词边界,$:行/输入的结束
        • \a:输入开始,\z:输入结束php,perl,Ruby
        • \z:输入的最末尾(\z在Python中)。NET,php,pcre,Java,ruby,icu,swift,Objective-C
        • \g:匹配php,perl,Ruby
        • 的开始

        (另见“Javamatcher中的函数的特定风味信息”)

        • (...):捕获组,(?:):非捕获组
          • 为什么我的重复捕获组只捕获最后一场比赛?
          • 正则表达式中反斜杠后的数字的含义是什么?
          • \g<1>123:如何在带编号的捕获组(如\1)后面加上编号?:Python
          • .NET/C#.NET中分支重置的等效值
          • 常规名称捕获regular-expressions.info
          • 处的组引用
          • Java:(regex):概述和命名规则(非堆栈溢出链接)
          • 其他语言:(?Pregex)python,(?regex).NET,(?regex)perl,(?Pregex)(?regex)PHP

          望道

          • lookaheads:(?=。。。):正,(?!。。。):负
          • lookbehinds:(?<;=。。。):正,(?<;!。。。):负(javascript不支持)
          • 查找限制位于:
            • lookbehinds需要是恒定长度的php,perl,python,Ruby
            • 有限长度的查找框{0,n}Java
            • 允许在。NET中使用可变长度的lookbehind
            • 使用\kphp,perl(支持\k)
            • Python Python的替代正则表达式模块
              • 陈腐的方式
              • JavaScript负向查找等效项外部链接

              修饰语

              • 大多数风格:G:全局,I:不区分大小写,U:Unicode,X:空格扩展
              • c:当前位置perle:表达式php perlo:Once Ruby
              • m:多行php perl python javascript.NET Java,m:(非)多行Ruby
              • s:单行(javascript或ruby不支持),s解决方案javascript
              • s:study phpu:ungreedy php r
              • 如何将preg_replace e转换为PREG_REPLACCE_CALLBACK?
              • 什么是内联修饰符?
              • 什么是Ruby正则表达式中的“?-mix”

              其他:

              • :交替(OR)运算符,.:任意字符,[.]:文字点字符
              • 哪些特殊字符必须转义?
              • 控制谓词(php和perl):(*prune)(*skip)(*fail)(*f)
                • 仅PHP:(*bsr_anycrlf)

                常用任务

                • 获取两个花括号之间的字符串:{。。。}
                • 匹配(或替换)模式,情况s1,s2,S3除外。。。
                • 如何使用正则表达式在字符串中查找所有YouTube视频ID?
                • 验证:
                  • Internet:电子邮件地址,URL(主机/端口:正则和非正则选项),密码
                  • 数字:数字,最小-最大范围(如1-31),电话号码,日期
                  • 使用正则表达式分析HTML:请参阅“常规信息>何时不使用正则表达式”

                  高级正则表达式-FU

                  • 字符串和数字:
                    • 用于匹配不包含单词的行的正则表达式
                    • 此PCRE模式如何检测回文?
                    • 匹配长度为四次方的字符串
                    • 此正则表达式如何查找三角数字?
                    • 如何用正则表达式确定一个数是否为素数?
                    • 如何将字符串中的中间字符与正则表达式匹配?
                    • 如何将a^n b^n与Java正则表达式匹配?
                    • 匹配嵌套括号
                      • 使用递归模式php,Perl
                      • 使用平衡组。NET

                      风味特定信息

                      (除了用*标记的链接外,此部分包含非堆栈溢出链接。)

                      • Java
                          官方文档:Pattern Javadoc,Oracle的正则表达式教程
                        • java.util.regex.matcher中函数之间的差异:
                          • matches()):匹配必须锚定到输入开始和结束
                          • find()):匹配项可能在输入字符串(子字符串)中的任何位置
                          • lookingat():匹配必须锚定到输入-仅开始
                          • (一般锚,请参阅“锚”一节)
                          • 如何读取混合了前瞻,后瞻,捕获组和后向引用的。NET正则表达式?
                          • 增强正则表达式引擎:常规语法,Perl语法(由TextPad,Sublime Text,UltraEdit,。。。???使用)
                          • JavaScript 1.5常规信息和RegExp对象
                          • .NETMySQLOraclePerl5版本18.2
                          • php:模式语法,preg_match
                          • Python:正则表达式操作,搜索匹配,操作方法
                          • splunk:regex术语和语法以及regex命令
                          • tcl:regex语法,manpage,regexp命令
                          • Visual Studio查找和替换

                          一般信息

                          (用*标记的链接是非堆栈溢出链接。)

                          • 其他常规文档资源:学习正则表达式,*regular-expressions.info,*wikipedia条目,*rexegg,Open-Directory Project
                          • DFA与NFA
                          • 生成与正则表达式匹配的字符串
                          • 书籍:Jeffrey Friedl's Mastering Regular Expressions
                          • 何时不使用正则表达式:
                            • 有些人遇到问题时会想:“我知道了,我就用正则表达式吧。” 现在他们有两个问题。 (Stack Overflow创始人撰写的博文)*
                            • 不要使用正则表达式分析HTML:
                              • 不要。 请不要
                              • 嗯,也许……如果你真的下定决心的话(这个问题的其他答案也不错)

                              可能导致正则表达式引擎失败的正则表达式示例

                              • 为什么这个正则表达式会杀死Java正则表达式引擎?

                              工具:测试者和解释者

                              (本节包含非堆栈溢出链接。)

                              >

                            • 联机(*包括替换检测仪,+包括拆分检测仪):

                              • debuggex(还有一个有用的正则表达式存储库)javascript,python,PCRE
                              • *正则表达式101 php,pcre,python,JavaScript
                              • regex Pal,regular-expressions.info JavaScript
                              • Rubular rubyRegExrRegex Hero DotNet
                              • *+regexstorm.net.net
                              • *regexpreset:Java Java,Go Go,Haskell Haskell,JavaScript JavaScript,。NET dotnet,Perl Perl php PCRE php,Python Python,Ruby Ruby,XRegExp XRegExp
                              • freeformatter.comxregexp
                              • *+regex.larsolavtorvik.comphp PCRE和POSIX,JavaScript
                              • 重新修改javascript ruby.NET

                              脱机:

                              • Microsoft Windows:RegexBuddy(分析),RegexMagic(创建),Expresso(分析,创建,免费)

                              null