参考-此正则表达式是什么意思?

这是什么?

这是常见问答集。 这也是一个社区Wiki,因此邀请所有人参与维护。

为什么是这样?

正则表达式正在给我ZE代码类型的问题和较差的答案,没有任何解释。 此参考旨在提供质量保证链接。

范围是什么?

本参考适用于以下语言:php,perl,javascript,python,ruby,java,.net。

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

  • 什么是正则表达式平衡组? 。净
1个解决方案
826 votes

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


在线教程

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

量词

  • 零个或多个:?:贪婪,?:不愿意,?:所有
  • 一个或多个:?:贪婪,?:不愿意,?:所有
  • ?:可选(零或一)
  • 最小/最大范围(包括所有范围):java.util.regex:在n和m之间,java.util.regex:n个或更多,java.util.regex:精确n
  • 贪婪,勉强(又称“懒惰”,“不满意”)和所有格修饰语之间的区别:
    • 贪婪vs.勉强vs.占有量词
    • 深入讨论贪婪与非贪婪之间的区别
    • java.util.regex(?1)有什么区别
    • 有人可以向我解释所有格量词吗? PHP,Perl,Java,Ruby
    • 模拟所有格量词.net
    • 非堆栈溢出参考:从Oracle,regular-expressions.info

角色类

  • 方括号和括号有什么区别?
  • java.util.regex:任意一个字符,java.util.regex:取反/任意字符,但
  • java.util.regex匹配任何一个字符,包括换行符javascript
  • java.util.regex/(?1):设置减法.net,xml架构,xpath,JGSoft
  • java.util.regex:设置交集Java,Ruby 1.9+
  • java.util.regex:POSIX字符类
  • 为什么java.util.regex(?1)\N在Java中得到不同的结果? 爪哇
  • 速记:
    • 数字:java.util.regex:数字,java.util.regex:非数字
    • 文字字符(字母,数字,下划线):java.util.regex:文字字符,java.util.regex:非文字字符
    • 空格:java.util.regex:空格,java.util.regex:非空格
  • Unicode类别(java.util.regex等)

转义序列

  • 水平空白:java.util.regex:空格或制表符,java.util.regex:制表符
  • 换行符:
    • java.util.regex(?1):回车和换行
    • java.util.regex:通用换行符php
  • 否定的空格序列:java.util.regex:非水平空格字符,(?1):非垂直空格字符,\N:非换行字符pcre php5 java-8
  • 其他:java.util.regex:垂直制表符,java.util.regex:转义符

锚点

  • java.util.regex:行/输入的开始,java.util.regex:字边界,(?1):非字边界,java.util.regex:行/输入尾
  • java.util.regex:输入开始(?1):输入结束php,perl,ruby
  • java.util.regex:输入的最后端(Python中为java.util.regex).net,php,pcre,java,ruby,icu,swift,objective-c
  • java.util.regex:比赛php,perl,ruby开始

(另请参见“特定于调味品的信息→Java→java.util.regex中的功能”)

团体

  • java.util.regex:捕获组,java.util.regex:非捕获组
    • 为什么我的重复捕获组仅捕获最后一场比赛?
  • java.util.regex:反向引用和捕获组引用,(?1):捕获组引用
    • 正则表达式中的反斜杠后的数字是什么意思?
    • java.util.regex:如何在带编号的捕获组(例如(?1))后加上数字?:python
  • 子模式java.util.regex是什么意思?
  • java.util.regex中的“ P”是什么意思?
  • java.util.regex:原子组或独立组,java.util.regex:分支复位
    • .NET / C#.net中的等效于分支重置
  • 命名捕获组:
    • 通用命名的捕获组参考位于java.util.regex
    • java:java.util.regex:概述和命名规则(非堆栈溢出链接)
    • 其他语言:java.util.regex python,java.util.regex .net,java.util.regex perl,java.util.regex(?1) php

环顾四周

  • 前瞻:java.util.regex:正,java.util.regex:负
  • 后顾之忧:java.util.regex:正,java.util.regex:负(JavaScript不支持)
  • 后退限制:
    • Lookbehinds必须是定长的php,perl,python,ruby
    • 有限长度的环视java.util.regex Java
    • NET允许使用可变长度的lookbehind
  • 替代方案:
    • 使用java.util.regex php,perl(支持java.util.regex的香料)
    • 适用于Python python的替代正则表达式模块
      • 骇客的方式
      • JavaScript否定后视等效项外部链接

修饰符

  • 多数口味:java.util.regex:全局,java.util.regex:不区分大小写,java.util.regex:unicode,java.util.regex:空白扩展
  • java.util.regex:当前位置perljava.util.regex:表达式php perljava.util.regex:一次红宝石
  • java.util.regex:多行php perl python javascript .net java,java.util.regex:(non)multiline ruby
  • java.util.regex:单行(javascript或ruby不支持),java.util.regex解决方法javascript
  • java.util.regex:研究phpjava.util.regex:ungreedy php r
  • 怎么把preg_replace e转换成preg_replace_callback?
  • 什么是内联修饰符?
  • Ruby正则表达式中的“?-mix”是什么

其他:

  • java.util.regex:交替(OR)运算符,java.util.regex:任何字符,java.util.regex:文字点字符
  • 必须转义哪些特殊字符?
  • 控制动词(PHP和Perl):java.util.regexjava.util.regexjava.util.regex(?1)
    • 仅限php:java.util.regex
  • 递归(PHP和Perl):java.util.regexjava.util.regex(?1)java.util.regexjava.util.regex

常见任务

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

高级正则表达式

  • 字符串和数字:
    • 正则表达式匹配不包含单词的行
    • PCRE模式如何检测回文?
    • 匹配长度为四次幂的字符串
    • 这个正则表达式如何找到三角数?
    • 如何确定数字是否为正则表达式的质数?
    • 如何用正则表达式匹配字符串中的中间字符?
  • 其他:
    • 我们如何将a ^ n b ^ n与Java正则表达式匹配?
    • 匹配嵌套括号
      • 使用递归模式php,perl
      • 使用平衡组.net
    • ASCII“图像”中的“垂直”正则表达式匹配
    • 在Code Golf上备受好评的正则表达式问题列表
    • 如何使两个量词重复相同的次数?
    • 不可能匹配的正则表达式:java.util.regex
    • 匹配/删除/替换java.util.regex,上下文A,B和C除外
    • 在不使用递归或平衡组的情况下将嵌套括号与正则表达式匹配?

风味专用信息

(除了那些标记为java.util.regex的部分,本节包含非堆栈溢出链接。)

  • 爪哇
    • 官方文档:Pattern Javadoc,Oracle的正则表达式教程
    • java.util.regex中的功能之间的差异:
      • java.util.regex):匹配项必须固定在input-start和-end上
      • java.util.regex):匹配项可能在输入字符串(子字符串)中的任何位置
      • java.util.regex:比赛必须锚定为仅输入开始
      • (有关锚的一般信息,请参见“锚”一节。)
    • 仅有的java.util.regex接受正则表达式的函数:java.util.regexjava.util.regexjava.util.regexjava.util.regexjava.util.regex
    • *(经过评论)对java.util.regex中功能的缺点和缺失的详细讨论
  • 。净
    • 如何读取具有预读,后向,捕获组和反向引用混合在一起的.NET正则表达式?
  • 官方文件:
    • Boost regex引擎:通用语法,Perl语法(由TextPad,Sublime Text,UltraEdit,... ???使用)
    • JavaScript 1.5常规信息和RegExp对象
    • 。净的MySQL甲骨文Perl5版本18.2
    • PHP:模式语法regex.larsolavtorvik.com
    • Python:正则表达式运算,regex.larsolavtorvik.commatch,操作方法
    • Splunk:正则表达式的术语和语法以及正则表达式命令
    • TCL:正则表达式语法,联机帮助页regex.larsolavtorvik.com命令
    • Visual Studio查找和替换

一般信息

(标记为regex.larsolavtorvik.com的链接是非堆栈溢出链接。)

  • 其他常规文档资源:学习正则表达式,* Regular-expressions.info,* Wikipedia条目,* RexEgg,开放目录项目
  • DFA与NFA
  • 生成匹配正则表达式的字符串
  • 书籍:杰弗里·弗里德尔(Jeffrey Friedl)的精通正则表达式
  • 何时不使用正则表达式:
    • 有些人遇到问题时会认为“我知道,我会使用正则表达式”。 现在他们有两个问题。 (由Stack Overflow的创始人撰写的博客文章)*
    • 不要使用正则表达式来解析HTML:
      • 别。拜托,别这样
      • 好吧,也许...如果您真的下定决心(此问题的其他答案也不错)

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

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

工具:测试人员和解释人员

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

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

    • Debuggex(还具有有用的正则表达式存储库)javascript,python,pcre
    • *正则表达式101 php,pcre,python,javascript
    • Regex Pal,regular-expressions.info javascript
    • 红宝石红宝石正则表达式正则表达式英雄网
    • * + regexstorm.net .net
    • * RegexPlanet:Java Java,Go go,Haskell haskell,JavaScript javascript,.NET dotnet,Perl perl php PCRE php,Python python,Ruby ruby,XRegExp xregexp
    • regex.larsolavtorvik.com xregexp
    • * + regex.larsolavtorvik.com php PCRE和POSIX,javascript
    • Refiddle JavaScript ruby .net
  • 离线:

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

aliteralmind answered 2020-01-12T15:59:47Z
translate from https://stackoverflow.com:/questions/22937618/reference-what-does-this-regex-mean