正则表达式
学习蛮多东西都有用到正则,感觉蛮有用,把自己看到的整理了下:
正则表达式:描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常的强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂
正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。(a-z和特殊字符 ‘元字符’);
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
特殊字符的匹配:如:$、()、*、+、-、. 、[ 、? 、\ 、^ 、{ 、| 在匹配前应该加一个\作为转义符
限定符:用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*或+或?或{n}或{n,}或{n,m}共6种。
*
|
匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
|
+
|
匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}
|
?
|
匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。 |
{n} |
n 是一个非负整数。匹配确定出现的 n 次。例如,'o{2}' 不能匹配 "Boy" 中的 'o',但是能匹配 "good" 中的两个 o。
|
{n,}
|
n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Boy" 中的 'o',但能匹配 "gooooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 |
{n,m}
|
m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "gooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
|
注意:*、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
如: 匹配两位的整数(1-99) /[1-9][0-9]*/ =>/[0-9]{1,2}/ =>/[1-9][0-9]?/ 或者/[1-9][0-9]{0,1}/
定位符:定位符用来描述字符串或单词的边界
^ |
匹配输入字符串开始的位置。
|
$
|
匹配输入字符串结尾的位置
|
\b
|
匹配一个字边界,即字与空格间的位置。
|
\B
|
非字边界匹配(不处于一个字的开始或结束,如:/\Bco/ 匹配record,不匹配cosole) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】