(?:
pattern)是非捕获型括号
匹配
pattern
,但不捕获匹配结果。
(pattern )是捕获型括号。
匹配
pattern
,
匹配
pattern
并捕获结果,自动获取组号
(?<name> pattern )
匹配
pattern
,
匹配
pattern
并捕获结果,设置
name
为组名
使用小括号指定一个子表达式后,匹配这个子表达式的文本
(
也就是此分组捕获的内容
)
可以在表达式或其它程序中作进一步的处理。默认情况下,每个捕获组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为
1
,第二个为
2
,以此类推。
如果正则表达式中同时存在普通捕获组和命名捕获组,那么捕获组的编号就要特别注意,编号的规则是先对普通捕获组进行编号,再对命名捕获组进行编号。
为了避免括号太多使编号混乱,也为了避免无用的捕获提高效率,在不需要捕获只需要指定分组的地方就可以使用非捕获型括号。问题里的非捕获型括号就是为此使用的
(?: pattern)是非捕获型括号 匹配pattern,但不捕获匹配结果。(pattern )是捕获型括号。 匹配pattern,匹配pattern并捕获结果,自动获取组号(? pattern ) 匹配pattern, 匹配pattern并捕获结果,设置name为组名 使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达
一、认识
正则表达式
1、
正则表达式
是描述字符模式的对象,
正则表达式
用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。
2、String和RegExp都定义了
使用
正则表达式
进行强大的模式匹配和文本检索与替换的函数。
3、
正则表达式
主要用来验证客户端的输入数据。可以节约大量的服务器端的系统资源,并且提供更好的用户体验。
二、创建
正则表达式
1、字面量。语法:Reg = /pattern/modifiers; 字面量的正则由两个正斜杆组成//,第一个正斜杆后面写规则:/pattern[规则
4. m-n位的数字:^\d{m,n}$
5. 零和非零开头的数字:^(0|[1-9][0-9]*)$
6. 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$
7. 带1-2位小数的正数或负数:^(\-)?\d+(\....
之前有人提了一个需求,我一看此需求用
正则表达式
最合适不过。考虑到之前每次
使用
正则表达式
,都是临时抱佛脚,于是这次我就一边完成任务一边系统的学习了一遍
正则表达式
。主要参考PyCon2016上的一个视频Regular Expressions。
我将分几篇文章对
正则表达式
进行总结。
以下是第一部分,基础:
这里总结了
正则表达式
最基础的用法,其中大部分内容对我(以及大部分程序员)来说都是平时经常用到的,所以我就一笔带过了,只对其中的几处用例子说明。
. 除了换行之外的其他所有字符
^ 行首
正则表达式
是一种用于匹配文本模式的工具。根据题目要求,我们要
使用
正则表达式
匹配文件路径。文件路径通常由目录路径和文件名组成。
以下是一个示例的
正则表达式
,可用于匹配Windows文件路径:
^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$
解析一下这个
正则表达式
:
- ^ 表示匹配字符串的开始
- [a-zA-Z] 表示匹配一个字母,它后面跟着一个
冒号
:
- \\ 表示匹配一个反斜杠 \
- (?:[^\\/:*?"<>|\r\n]+\\)* 表示匹配零个或多个由非反斜杠、
冒号
、星号、
问号
、双引号、尖括号、竖线、回车或换行符组成的字符,后面紧跟一个反斜杠 \
- [^\\/:*?"<>|\r\n]* 表示匹配零个或多个由非反斜杠、
冒号
、星号、
问号
、双引号、尖括号、竖线、回车或换行符组成的字符
- $ 表示匹配字符串的结束
使用
这个
正则表达式
,我们可以匹配类似于 C:\Program Files\example.txt 的文件路径。
注意,
正则表达式
的具体形式可能因操作系统和文件系统而异。以上给出的示例是适用于Windows的文件路径。如果要匹配其他操作系统和文件系统的文件路径,可能需要做一些调整。
正则表达式
是用于匹配文本模式的工具,我们可以
使用
正则表达式
来匹配文件路径。对于Windows文件路径,一个示例的
正则表达式
是^[a-zA-Z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$。