c# 正则表达式 匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 正则表达式 匹配相关的知识,希望对你有一定的参考价值。

String p = "\\d";
String num = "*pp22";
if (System.Text.RegularExpressions.Regex.IsMatch(num, p) == true)
就拿上面来说,因为num里面有2这个字符,所以这个整体就匹配成功了,但是我想要达到的效果是检测num是不是一个合法的数字,该怎么做啊
好急好急!!

参考技术A (?<nums>\d*) 取命名组nums

RegexOptions options = RegexOptions.None;
Regex regex = new Regex(@"(?<nums>\d*)", options);
string input = @"*pp22";

// Check for match
bool isMatch = regex.IsMatch(input);
if( isMatch )

// TODO: Do something with result
System.Windows.Forms.MessageBox.Show(input, "IsMatch");


// Get match
Match match = regex.Match(input);
if( match != null )

// TODO: Do something with result
System.Windows.Forms.MessageBox.Show(match.Value, "Match");


// Get matches
MatchCollection matches = regex.Matches(input);
for( int i = 0; i != matches.Count; ++i )

// TODO: Do something with result
System.Windows.Forms.MessageBox.Show(matches[i].Value, "Match");


// Numbered groups
for( int i = 0; i != match.Groups.Count; ++i )

Group group = match.Groups[i];

// TODO: Do something with result
System.Windows.Forms.MessageBox.Show(group.Value, "Group: " + i);


// Named groups
string groupA = match.Groups["nums"].Value;

// TODO: Do something with result
System.Windows.Forms.MessageBox.Show(groupA, "Group: nums");

追问

输出了OK

追答

最后的代码不是取命名组 nums的值吗。
我这个是代码生成的,全给你了。

追问

抱歉,不太明白,
比较急,方便加个qq吗 694358264
感激不尽~~

追答

加了。

本回答被提问者采纳
参考技术B 写个方法,返回值类型用bool类型,参数是字符串类型,当匹配上的时候返回值是true,否则返回false,调用的时候,只需要传入字符串就可以判断追问

不是,那匹配的时候还是要调System.Text.RegularExpressions.Regex.IsMatch
这个函数吧
这个函数本身就不是说完全匹配的啊,这怎么办

追答

bool isNumberic(string numStr)
return new System.Text.RegularExpressions.Regex(@"^\d+$");

你试试这个方法

追问

你new了个Regex 没用他匹配吧。。

追答

bool isNumberic(string numStr)
return System.Text.RegularExpressions.Regex.IsMatch(numStr,@"^\d+$");

写掉了个东西

C#匹配中文字符串的4种正则表达式分享

本文介绍在C#中使用匹配中文的正则表达式,包括纯中文、有中文、中文开头、中文结尾等几个正则表达式示例。在正则表达式中,中文可以通过Unicode编码来确定正则表达式范围。

在C#中,匹配中文的正则表达式用Unicode来表示时,范围是: [\u4e00-\u9fa5]。所以,在此基础上,我们可以得到如下一些正则表达式。

1、匹配字符串全部是中文字符的正则表达式

代码如下:
"^[\u4e00-\u9fa5]+$"


说明:“^”表示字符串开头,“$”表示字符串结束,“[\u4e00-\u9fa5]+”表示一个或多个中文字符。

 

2、匹配字符串中包含中文字符的正则表达式

代码如下:
"[\u4e00-\u9fa5]"


说明:本例中只要求判断字符串中是否出现中文,所以不需要字符串头和尾,只要在整个字符串中有中文就可以被匹配到。

 

3、匹配字符串中以中文字符开头的正则表达式

代码如下:
"^[\u4e00-\u9fa5]"


说明:在正则表达式的最前面加一个“^”,再紧跟一个中文字符,即可匹配以中文字符开头的字符串。

 

4、匹配字符串中以中文字符结尾的正则表达式

代码如下:
"[\u4e00-\u9fa5]$"


说明:在正则表达式的最后面加一个“$”,在此之前加一个中文字符,即可匹配以中文字符结尾的字符串。

 

关于C#匹配中文字符的正则表达式,本文就介绍这么多,希望对您有所帮助,谢谢!

以上是关于c# 正则表达式 匹配的主要内容,如果未能解决你的问题,请参考以下文章

c#使用正则表达式匹配数据 并计算填入新的值

C#匹配中文字符串的4种正则表达式分享

使用 C# 的正则表达式匹配(简单??)正则表达式

C# 正则表达式匹配总是返回 false

C#:正则表达式不匹配一组单词

正则表达式在 C# 中匹配,但在 java 中不匹配