1作用:
1文本匹配(验证字符串)
2查找字符串
2符号:
. ^ $ * + - ? ( ) [ ] { } \ |
[0-9]+ 匹配出数字
3语法格式:
**/表示模式/**修饰符
**/[0-9]+/**g
cs
表示模式:是指匹配条件,要写在2个斜杠内。是正则表达式主体部分。
[0-9a-z]+
[XxYyZzAaBbCc]+ 单字符匹配 +加号是可多次匹配
/ / 两个斜杠是包围正则表达式的模式,将其限制在两个斜杠之间。
修饰符: 辅助条件,收索模式。比如
忽略大小写i,
全局匹配g,
多行匹配m,
单行匹配s,
Unicode匹配u, /[\u4e00-\u9fa5]+/u 匹配汉字
沾驸匹配y, /abc/y 字符串的开头"abc"才匹配
忽略空白x, /a b c/x 匹配"a b c"
gims可以组合使用。
可以: 查找,替换,验证,提取文本数据。
/[0-9]+/****g是查找整行匹配数字
/[0-9]/****g是查找整行单个匹配数字
/[d-e]+/****g是查找整行匹配字母
4符号作用:
cs
* 最高通配符,前一个字符出现0次或多次匹配
. 通配单个字符(不包括\n \r) 等效于 [^\n\r]
.. 通配2个字符
... 通配3个字符
^ 匹配字符串开头位置
$ 匹配字符串结尾位置
+ 前一个字符1次或多次匹配
? 前一个字符0次或1次
ab?c 指b出现0次和1次。 匹配"ac""abc" 不匹配"abbc"
{n} 匹配前一个字符刚好出现n次
{n,} 匹配前一个字符至少出现n次
{n,m} 匹配前一个字符至少出现n次,但不超过m次 \d{2,4}例: 12abc 2345abcd 567ppp
\d 任何数字
{2,4}至少连续出现2~4次
-
( ) 字符串匹配,括号可以不写
(\d{4})-(\d{2})-(\d{2}) 例 2023-11-29
[ ] 集合内单字符匹配 ^反条件 去匹配集合内的任一单字符,有这元素就true
{ } 子条件
\ 转义 \. 匹配.点符号 a\.c 只匹配 a.c 不匹配abc
\* 匹配*星符号 a\*b 例 abc adc acc
\d 匹配数字 {4}匹配4个数字 2023年 {3,16}长度3~16的数字
\w 匹配字符
\s 匹配空白字符
\b 匹配单词的边界,回车
\B 不匹配字符边界
| 或者 cat|dog 猫和狗都满足条件 匹配cat和dog
元字符:
相当于C语言的关键字。
cs
\b 是单词边界
\w 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。
\. 匹配小数点
5提取数控坐标:
CNC数控机床坐标
/ [Xx]\d+\.?\d+ /g
6匹配和提取:
C#【中级篇】 C# 正则表达式_明如正午的博客-CSDN博客
C#的案例
cs
以下是一个使用C#的正则表达式的示例代码,它可以匹配一个字符串中的所有数字并输出:
```csharp
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string input = "abc123def456ghi789";
string pattern = @"\d+"; // 匹配一个或多个数字
MatchCollection matches = Regex.Matches(input, pattern);
foreach (Match match in matches)
{
Console.WriteLine(match.Value);
}
}
}
```
输出结果为:
```
123
456
789
```
foreach (Match match in Regex.Matches(input, pattern))
Console.WriteLine(match.Value);
cs
var str = "abc123def";
var sub = /[0-9]+/;
string data = str.match(sub);
Regex regex = new Regex(@"^abc$");
string input = "abc";
bool status = regex.IsMatch(input); // 匹配结果 bool
Match match = regex.Match(input); // 匹配对象 obj
if(status) // match.Success
{
string str = match.Groups[1].Value; // 输出匹配
}