这个正则表达式是什么意思?

这是什么?

这是一个常见Q&A的集合。 这也是一个社区Wiki,所以每个人都被邀请参与维护它。

为什么是这样?

正则表达式正在遭受give me ze code无法解释的give me ze code类型的问题和糟糕的答案。 此参考资料旨在提供质量问答链接。

范围是什么?

此参考针对以下语言:php,perl,javascript,python,ruby,java,.net。

这可能太宽泛,但这些语言共享相同的语法。 具体功能有它背后的语言标签,例如:

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

  • 堆栈溢出正则表达式常见问题


    在线教程

  • RegexOne
  • 正则表达式信息
  • 量词

  • 零或多: * :贪婪, *? :不情愿, *+ :所有格
  • 一个或多个: + :贪婪, +? :不情愿, ++ :占有欲
  • ? :可选(零或一)
  • 最小/最大范围(包括全部): {n,m} :在n和m之间, {n,} :n或更多, {n} :正好n
  • 贪婪,不愿意(又名“懒惰”,“不理智”)和占有量词之间的区别:
  • 贪婪与不愿意与拥有量词
  • 深入讨论贪婪与非贪婪之间的差异
  • {n}{n}?之间有什么区别{n}?
  • 有人可以向我解释拥有量词吗? PHP,Perl,Java,红宝石
  • 模拟所有的量词.net
  • 非堆栈溢出引用:来自Oracle,regular-expressions.info
  • 字符类

  • 方括号和括号之间有什么区别?
  • [...] :任何一个字符, [^...] :否定/任何字符,但
  • [^]匹配任何一个字符,包括换行符javascript
  • [w-[d]] / [az-[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 :非空白
  • Unicode类别( p{L}, P{L}等)
  • 转义序列

  • 水平空格: h :空格或制表符, t :制表符
  • 换行:
  • rn :回车和换行
  • R :通用换行符php
  • 否定空格序列: H :非水平空格字符, V :非垂直空格字符, N :非换行字符pcre php5 java-8
  • 其他: v :垂直制表符, e :转义字符
  • ^ :行/输入开始, b :字边界,和B :非字边界, $ :行结束/输入
  • A :输入开始, Z :输入php,perl,ruby结束
  • z :输入的结尾(Python中的Z ).net,php,pcre,java,ruby,icu,swift,objective-c
  • G :开始匹配php,perl,ruby
  • (另请参阅“风味特定信息→Java→ Matcher的函数”)

  • (...) :捕获组, (?:) :非捕获组
  • 为什么我的重复捕捉组只捕获最后一场比赛?
  • 1 :反向引用和捕获组引用, $1 :捕获组引用
  • 正则表达式中的反斜杠之后的数字的含义是什么?
  • g<1>123 :如何使用数字?:python跟随编号的捕获组,例如1
  • 子模式(?i:regex)是什么意思?
  • (?P<group_name>regexp)中的'P'是什么意思?
  • (?>) :原子组或独立组, (?|) :分支重置
  • .NET / C#.net中的分支重置等价物
  • 命名捕获组:
  • General在regular-expressions.info命名了捕获组引用
  • java: (?<groupname>regex) :概述和命名规则(非堆栈溢出链接)
  • 其他语言:( (?P<groupname>regex) python, (?<groupname>regex) .net, (?<groupname>regex) perl, (?P<groupname>regex)(?<groupname>regex) php
  • Lookarounds

  • Lookaheads: (?=...) :正面, (?!...) :负面
  • Lookbehinds: (?<=...) :正面, (?<!...) :负面(不受javascript支持)
  • 后顾之忧:
  • Lookbehinds需要是恒定长度的PHP,Perl,Python,Ruby
  • Java的有限长度{0,n}变形
  • 可变长度lookbehinds允许.net
  • 看后面的选择:
  • 使用K php,perl(支持K Flavors)
  • Python python的替代正则表达式模块
  • 哈克的方式
  • JavaScript负面后台对等外部链接
  • 修饰符

  • 大多数风格: g :全局, i :不区分大小写, u :unicode, x :空白扩展
  • c :当前位置perl e :表达式php perl o :一次红宝石
  • m :multiline php perl python javascript .net java, m :(非)多行ruby
  • s :单线,(不是由JavaScript或红宝石支持) s变通方法的javascript
  • S :学习php U :ungreedy php r
  • 如何将preg_replace e转换为preg_replace_callback?
  • 什么是内联修饰符?
  • Ruby正则表达式中的'?-mix'是什么?
  • 其他:

  • | :交替(OR)运算符, . :任何字符, [.] :文字点字符
  • 什么特殊字符必须逃脱?
  • 控制动词(php和perl): (*PRUNE)(*SKIP)(*FAIL)(*F)
  • 仅限PHP: (*BSR_ANYCRLF)
  • 递归(php和perl):( (?R)(?0)(?1)(?-1)(?&groupname)
  • 常见任务

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

  • 字符串和数字:
  • 正则表达式匹配不包含单词的行吗?
  • 这种PCRE模式如何检测回文序列?
  • 匹配长度为四次方的字符串
  • 这个正则表达式如何找到三角形数字?
  • 如何确定一个数字是否与正则表达式匹配?
  • 如何匹配字符串中的中间字符与正则表达式?
  • 其他:
  • 我们怎样才能将一个^ nb ^ n与Java正则表达式匹配?
  • 匹配嵌套括号
  • 使用递归模式php,perl
  • 使用平衡组.net
  • ASCII“图像”中的“垂直”正则表达式匹配
  • 代码高尔夫的高票数正则表达式问题清单
  • 如何让两个量词重复相同的次数?
  • 一个不可能匹配的正则表达式:( (?!a)a
  • 匹配/删除/替换this除了在上下文A,B和C
  • 无需使用递归或平衡组匹配嵌套括号与正则表达式?
  • 风味特定信息

    (除了标有*部分,本节包含非堆栈溢出链接。)

  • Java的
  • 官方文档:模式Javadoc,Oracle的正则表达式教程
  • java.util.regex.Matcher函数的区别:
  • matches() ):匹配必须锚定到input-start和-end
  • find() ):匹配可能在输入字符串中的任何地方(子字符串)
  • lookingAt() :匹配必须仅限于input-start
  • (对于一般的锚,请参阅“锚”一节)
  • 接受正则表达式的唯一java.lang.String函数: matches(s)replaceAll(s,s)replaceFirst(s,s)split(s) replaceFirst(s,s) split(s)split(s,i)
  • *关于java.util.regex中的缺点和缺少的特性(斟酌和详细讨论)
  • 。净
  • 如何阅读一个.NET的正则表达式与前瞻,后视,捕获组和反向引用混合在一起?
  • 官方文件:
  • Boost正则表达式引擎:一般语法,Perl语法(由TextPad使用,Sublime Text,UltraEdit,... ???)
  • JavaScript 1.5一般信息和RegExp对象
  • 。净 MySQL的 神谕 Perl5版本18.2
  • PHP:模式语法, preg_match
  • Python:正则表达式操作, search vs match ,操作方法
  • Splunk:正则表达式术语和语法和正则表达式命令
  • Tcl:正则表达式语法,manpage, regexp命令
  • Visual Studio查找和替换
  • 一般信息

    (标有*链接是非堆栈溢出链接。)

  • 其他一般文献资源:学习正则表达式,* Regular-expressions.info,*维基百科条目,* RexEgg,开放目录项目
  • DFA与NFA
  • 生成匹配正则表达式的字符串
  • 书籍:杰弗里弗里德尔的掌握正则表达式
  • 何时不使用正则表达式:
  • 有些人遇到问题时会想:“我知道,我会用正则表达式。” 现在他们有两个问题。 (由Stack Overflow创始人撰写的博文)*
  • 不要使用正则表达式来解析HTML:
  • 别。 请,不要
  • 好吧,也许......如果你真的确定了(这个问题的其他答案也很好)
  • 可能导致正则表达式引擎失败的正则表达式示例

  • 为什么这个正则表达式会杀死Java正则表达式引擎?
  • 工具:测试人员和解释人员

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

  • 在线(*包括更换测试仪,+包括分体测试仪):

  • Debuggex(也有一个有用的正则表达式库)javascript,python,pcre
  • *正则表达式101 php,pcre,python,javascript
  • 正则表达式Pal,regular-expressions.info javascript
  • Rubular红宝石 RegExr 正则表达式英雄dotnet
  • * + regexstorm.net .net
  • * RegexPlanet:Java java,Go Haskell Haskell,JavaScript JavaScript,.NET dotnet,Perl perl php PCRE php,Python python,Ruby ruby​​,XRegExp xregexp
  • freeformatter.com xregexp
  • * + regex.larsolavtorvik.com php PCRE和POSIX,JavaScript
  • Refiddle javascript ruby​​ .net
  • 离线:

  • Microsoft Windows:RegexBuddy(分析),RegexMagic(创建),Expresso(分析,创建,免费)
  • 链接地址: http://www.djcxy.com/p/86975.html

    上一篇: What does this regex mean?

    下一篇: 9] in .NET regular expressions