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

cyej8jka  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(309)

**这个问题的答案是社区的努力。编辑现有答案以改进此帖子。它目前不接受新的答案或互动。

这是什么?

这是常见问答的集合。这也是一个社区wiki,因此邀请每个人都参与维护它。

为什么会这样?

正则表达式正遭受着“给我代码”类型的问题和没有解释的糟糕答案。此参考旨在提供质量问答的链接。

范围是什么?

此参考适用于以下语言:php、perl、javascript、python、ruby、java、.net。
这可能过于宽泛,但这些语言共享相同的语法。对于特定的功能,后面有语言的标签,例如:
什么是正则表达式平衡组。网

b1zrtrql

b1zrtrql1#

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

在regextag详细信息页面上还可以看到许多通用提示和有用的链接。
在线教程
雷 gson
正则表达式信息
量词
零或更多: * :贪婪, *? :不情愿, *+ :所有格
一个或多个: + :贪婪, +? :不情愿, ++ :所有格 ? :可选(0或1)
最小/最大范围(包括所有范围): {n,m} :在n&m之间, {n,} :n-或更多, {n} :正是n
贪婪、不情愿(又称“懒惰”、“不贪婪”)和所有格量词之间的区别:
贪婪的、不情愿的、占有的量词
深入探讨贪婪与非贪婪的区别
两者有什么区别 {n} 以及 {n}? 有人能给我解释一下所有格量词吗?php,perl,java,ruby
模仿所有格量词.net
非堆栈溢出引用:来自oracle,regular-expressions.info
字符类
方括号和圆括号有什么区别? [...] :任何一个字符, [^...] :否定/任何字符,但 [^] 匹配任何一个字符,包括newlinesjavascript [\w-[\d]] / [a-z-[qz]] :set subtraction.net、xml schema、xpath、jgsoft [\w&&[^\d]] :set intersectionjava,ruby 1.9+ [[:alpha:]] :posix字符类
为什么 [^\\D2] , [^[^0-9]2] , [^2[^0-9]] 在java中得到不同的结果
速记:
数字: \d :数字, \D :非数字
文字字符(字母、数字、下划线): \w :文字字符, \W :非文字字符
空白: \s :空白, \S :非空白
unicode类别( \p{L}, \P{L} 等)
转义序列
水平空白: \h :空格或制表符, \t :选项卡
换行: \r , \n :回车和换行 \R :generic newlinephpjava-8
否定的空白序列: \H :非水平空白字符, \V :非垂直空格字符, \N :非换行符pcrephp5java-8
其他: \v :垂直选项卡, \e :转义字符
^ :行/输入的开始, \b :单词边界,和 \B :非单词边界, $ :行尾/输入 \A :开始输入, \Z :inputphp、perl、ruby结束 \z :输入的最末端( \Z net、php、pcre、java、ruby、icu、swift、objective-c \G :matchphp、perl、ruby的开始
(另请参阅“风味特定信息”→ java→ 中的功能 Matcher ")
(...) :捕获组, (?:) :非捕获组
为什么我的重复捕获组只捕获最后一场比赛? \1 :反向引用和捕获组引用, $1 :捕获组引用
正则表达式中反斜杠后面的数字是什么意思? \g<1>123 :如何跟随编号的捕获组,例如 \1 ,带数字?:python
子模式是什么 (?i:regex) 什么意思?
p代表什么 (?P<group_name>regexp) 什么意思? (?>) :原子群或独立群, (?|) :分支重置
相当于.net/c#.net中的分支重置
命名捕获组:
正在捕获组引用的常规名称 regular-expressions.info java 语: (?<groupname>regex) :概述和命名规则(非堆栈溢出链接)
其他语言: (?P<groupname>regex) Python, (?<groupname>regex) .net版本, (?<groupname>regex) perl公司, (?P<groupname>regex) 以及 (?<groupname>regex) PHP
环顾四周
头像: (?=...) :阳性, (?!...) :阴性
向后看: (?<=...) :阳性, (?<!...) :负(javascript不支持)
查找限制:
lookbehinds需要是常量长度php、perl、python、ruby
有限长度的了望台 {0,n} java
允许使用可变长度lookbehind.net
后备方案:
使用 \K php、perl(支持 \K )
pythonpython的替代regex模块
粗俗的方式
javascript反向查找等价外部链接
修饰语
大多数口味: g :全局, i :不区分大小写, u :unicode码, x :扩展的空白 c :当前位置
e :表达式phpperl
o :onceruby公司 m :multilephpperlpythonjavascript.netjava, m :(非)多线程 s :单行(javascript或ruby不支持), s 解决方法JavaScript S :研究HP
U :取消冻结phpr
如何将preg\u replace e转换为preg\u replace\u回调?
什么是内联修饰符?
ruby正则表达式中的“?-mix”是什么
其他: | :交替(或)运算符, . :任何字符, [.] :文字点字符
哪些特殊字符必须转义?
控制动词(php和perl): (*PRUNE) , (*SKIP) , (*FAIL) 以及 (*F) 仅限php: (*BSR_ANYCRLF) 递归(php和perl): (?R) , (?0) 以及 (?1) , (?-1) , (?&groupname) 常见任务
在两个大括号之间获得一条字符串: {...} 匹配(或替换)一个模式,但情况s1,s2,s3。。。
如何使用正则表达式在字符串中查找所有youtube视频ID?
验证:
互联网:电子邮件地址,网址(主机/端口:regex和非regex替代),密码
数字:数字、最小-最大范围(如1-31)、电话号码、日期
用regex解析html:参见“常规信息>何时不使用regex”
高级正则表达式fu
字符串和数字:
匹配不包含单词的行的正则表达式
这个pcre模式如何检测回文?
匹配长度为四次方的字符串
这个正则表达式如何找到三角数?
如何用正则表达式判断一个数是否是素数?
如何将字符串中的中间字符与regex匹配?
其他:
如何将a^nb^n与java regex匹配?
匹配嵌套括号
使用递归模式php、perl
使用平衡组.net
ascii“图像”中的“垂直”正则表达式匹配
关于高尔夫代码的高投票率正则表达式问题列表
如何使两个量词重复相同的次数?
无法匹配的正则表达式: (?!a)a 匹配/删除/替换 this 上下文a、b和c除外
在不使用递归或平衡组的情况下将嵌套括号与regex匹配?
风味特定信息
(标有 * ,此部分包含非堆栈溢出链接。)
java
正式文档:模式javadoc,oracle正则表达式教程
函数之间的差异 java.util.regex.Matcher : matches() ):匹配必须锚定到输入开始和结束 find() ):匹配可能在输入字符串(子字符串)中的任何位置 lookingAt() :匹配必须锚定到仅输入开始
(一般锚定见“锚定”一节)
唯一的 java.lang.String 接受正则表达式的函数: matches(s) , replaceAll(s,s) , replaceFirst(s,s) , split(s) , split(s,i) *一个(固执己见的)详细讨论的缺点和缺失的特点 java.util.regex .net
如何阅读一个带有look ahead、look back、捕获组和back引用混合在一起的.net正则表达式?
官方文件:
boost regex引擎:通用语法,perl语法(由textpad、sublime text、ultraedit等使用)
javascript 1.5常规信息和regexp对象
.net

mysql数据库

Oracle

perl5版本18.2
模式语法, preg_match python:正则表达式运算, searchmatch ,操作方法
splunk:regex术语、语法和regex命令
tcl:regex语法,手册页, regexp 命令
visual studio查找和替换
一般信息
(链接标记为 * 是非堆栈溢出链接。)
其他通用文档资源:学习正则表达式,*regular-expressions.info,*维基百科条目,rexegg,开放目录项目
dfa与nfa
生成与regex匹配的字符串
书籍:杰弗里弗里德尔的掌握正则表达式
何时不使用正则表达式:
有些人在遇到问题时会想“我知道,我会用正则表达式。”现在他们有两个问题(stack overflow创始人撰写的博客文章)

不要使用regex解析html:
不要。

拜托,别这样
嗯,也许…如果你真的下定决心的话(这个问题的其他答案也不错)
可能导致regex引擎失败的regex示例
为什么这个正则表达式会杀死java正则表达式引擎?
工具:测试人员和解释人员
(此部分包含非堆栈溢出链接。)
在线(*包括更换测试仪,+包括分离测试仪):
debuggex(还有一个有用regex的存储库)javascript、python、pcre

  • 正则表达式101php、pcre、python、javascript

正则表达式pal,regular-expressions.infojavascript
鲁布拉鲁比

正则表达式

正则表达式herodotnet

  • +regexstorm.net.net
  • regexplanet:javajava、gogo、haskellhaskell、javascriptjavascript、.netdotnet、perlperlphpcrephp、pythonpython、rubyruby、xregexpxregexp freeformatter.com xregexp公司
    • regex.larsolavtorvik.com php-pcre和posix,javascript

再灌注

相关问题