页首Html代码

C# 正则表达式 使用例子

Regex.IsMatch

在输入字符串中是否有符合正则表达式的项

例子1是否符合手机号码

            Console.WriteLine(Regex.IsMatch(src, @"^[1][35]\d{9}$"));

^$分别表示字符串首尾位置。匹配第一个是1,第二个为3或者5,剩余9个数字总共11数字的字符串。

 

 例子2.是否符合IP地址

  • 2(5[0-5]|[0-4]\d) 匹配:200 ~ 255
  • [0-1]?\d{1,2} 匹配:0 ~ 199
  • 判断字符串是否是IP地址
    ^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$

 Regex.Replace 

例子1:将NAME=XXX;替换为NAME=Jack;

string line = "ADDR=1234;NAME=ZHANG;PHONE=6789";
Regex reg = new Regex("NAME=(.+);");
string modified = reg.Replace(line, "NAME=Jack;");

 例子2:将123abc456ABC789中的ABC 不区分大小写替换成123|456|789

var source = "123abc456ABC789";
// 静态方法
//var newSource=Regex.Replace(source,"abc","|",RegexOptions.IgnoreCase);
// 实例方法
Regex regex = new Regex("abc", RegexOptions.IgnoreCase);
var newSource = regex.Replace(source, "|");
Console.WriteLine("原字符串:"+source);
Console.WriteLine("替换后的字符串:" + newSource);
Console.ReadLine();
View Code

例子3.使用Replace中的MatchEvaluator将123abc456ABCD789的ABC不分大小写替换成123<b>abc</b>456<b>ABC</b>D789

var source = "123abc456ABCD789"; 
Regex regex = new Regex("[A-Z]{3}", RegexOptions.IgnoreCase);
var newSource = regex.Replace(source,new MatchEvaluator(OutPutMatch));
Console.WriteLine("原字符串:"+source);
Console.WriteLine("替换后的字符串:" + newSource);
Console.ReadLine();

private static string OutPutMatch(Match match)
{
  return "<b>" +match.Value+ "</b>";
}
View Code

 Regex Match Matches

Match 返回第一个符合要求的Match对象。

Matches返回所有符合要求的MatchCollection

            string line = "345y54habcs42394394abc24";

            Regex reg = new Regex("abc");
            MatchCollection mc = reg.Matches(line);

            foreach (Match m in mc)
            {
                Console.WriteLine($"in place {m.Index} there is value {m.Value}");
            }

输出

in place 7 there is value abc
in place 19 there is value abc

 

例子

1.从A Thousand Splendid Suns中找出以S开头的单词

@"\bS\S*"

 

2.从make maze and manage to measure it找出m开头,e结尾的单词

\bm\S*e\b

3.

 

查表

字  符

描  述

\

转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反过来

^

匹配输入字符串的开始位置

$

匹配输入字符串的结束位置

*

匹配前面的零次或多次的子表达式

+

匹配前面的一次或多次的子表达式

?

匹配前面的零次或一次的子表达式

{n}

n是一个非负整数,匹配前面的n次子表达式

{n,}

n是一个非负整数,至少匹配前面的n次子表达式

{n,m}

m和n均为非负整数,其中n<=m,最少匹配n次且最多匹配m次

?

当该字符紧跟在其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式尽可能少的匹配所搜索的字符串

.

匹配除“\n”之外的任何单个字符

(pattern)

匹配pattern并获取这一匹配

(?:pattern)

匹配pattern但不获取匹配结果

(?=pattern)

正向预查,在任何匹配pattern的字符串开始处匹配查找字符串

(?!pattern)

负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串

x|y

匹配x或y。例如,‘z|food’能匹配“z”或“food”。‘(z|f)ood’则匹配“zood”或“food”

[xyz]

字符集合。匹配所包含的任意一个字符。例如,‘[abc]’可以匹配“plain”中的‘a’

[^xyz]

负值字符集合。匹配未包含的任意字符。例如,‘[^abc]’可以匹配“plain”中的‘p’

[a-z]

匹配指定范围内的任意字符。例如,‘[a-z]’可以匹配'a'到'z'范围内的任意小写字母字符

[^a-z]

匹配不在指定范围内的任意字符。例如,‘[^a-z]’可以匹配不在‘a’~‘z’'内的任意字符

\b

匹配一个单词边界,指单词和空格间的位置

\B

匹配非单词边界

\d

匹配一个数字字符,等价于[0-9]

\D

匹配一个非数字字符,等价于[^0-9]

\f

匹配一个换页符

\n

匹配一个换行符

\r

匹配一个回车符

\s

匹配任何空白字符,包括空格、制表符、换页符等

 

\S

匹配任何非空白字符

\t

匹配一个制表符

\v

匹配一个垂直制表符。等价于\x0b和\cK

\w

匹配包括下划线的任何单词字符。等价于‘'[A-Za-z0-9_]’

\W

匹配任何非单词字符。等价于‘[^A-Za-z0-9_]’

 

https://www.cnblogs.com/zhangxiaoyong/p/6043283.html

posted @ 2021-05-11 16:06  noigel  阅读(232)  评论(0编辑  收藏  举报
js脚本