Java中的正则表达式匹配与C#的区别

作者:陆金龙    发表时间:2017-09-23 13:38   


Java正则表达式匹配判断:

find()用于搜索,只要部分匹配正则表达式即可。

matches()用于于字符串的完整匹配,部分满足条件不行。

Java部分匹配使用find 而不要用matches。

 

与C#正则匹配用法比较:

C# 使用Regex.IsMatch()判断是否匹配:

bool IsRight =Regex.IsMatch("需要处理的字符串","正则表达式")

 

扩展 获取匹配内容:

Java:

String str = "需要处理的字符串";

Pattern p = Pattern.compile("正则表达式"); 

Matcher m = p.matcher(str);

boolean isFound = m.find();

if(isFound){

    for (int i = 1; i <= m.groupCount(); i ) {

       String result =  m.group(i);

   }

}

 
C#:

1.得到单个数据(从字符串左边向右边寻找,遇到第一个符合就返回)

Match m = Regex.Match()("需要处理的字符串","正则表达式")

string str = m.value;

2.得到所有能匹配的子字符串数据,并返回一个Match集合。

MatchCollection ms = Regex.Matches("需要处理的字符串","正则表达式")

foreach(Match m in ms)

{

    string result =m.value;

}