首先是一段java的正则代码,我要转换为.net的 /**
* 在分隔符后加上回车
* @param str
* @param splitStr
* @return
*/
private static String getAddEnterStr(String str,String splitStr){
Pattern p = Pattern.compile(splitStr,Pattern.CASE_INSENSITIVE); // 用Pattern类的matcher()方法生成一个Matcher对象
Matcher m = p.matcher(str);
StringBuffer sb = new StringBuffer(); // 使用find()方法查找第一个匹配的对象
boolean result = m.find(); // 使用循环找出模式匹配的内容替换之,再将内容加到sb里
while (result) {
m.appendReplacement(sb, m.group(0) + "\n ");
result = m.find();
}
// 最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里;
m.appendTail(sb);
return FourSpace+sb.toString();
}上面为java的下面为.net的 但是我只是写了一部分了,到了 java部分的appendReplacement 这个方法,死活搞不懂怎样转换为.net的语言,求大神帮忙啊!!!!!!!! /**
* 在分隔符后加上回车
* @param str
* @param splitStr
* @return
*/
private static string getAddEnterStr(string str, string splitStr)
{
Regex rx = new Regex(splitStr, RegexOptions.Compiled | RegexOptions.IgnoreCase); Match matches = rx.Match(str); StringBuilder sb = new StringBuilder(); // sb.Append(str);
// 使用find()方法查找第一个匹配的对象
Boolean result = matches.Success; // 使用循环找出模式匹配的内容替换之,再将内容加到sb里
while (result)
{
//这里究竟该怎样写呢? 反正下面写的这个是错误的
matches.Value.(sb.ToString(), matches.Groups[0].Value + "\n ");
result = matches.Success;
}
// 最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里;
sb.Append(matches.Value); return FourSpace + sb.ToString();
}
正则表达式Java.NET对象
* 在分隔符后加上回车
* @param str
* @param splitStr
* @return
*/
private static String getAddEnterStr(String str,String splitStr){
Pattern p = Pattern.compile(splitStr,Pattern.CASE_INSENSITIVE); // 用Pattern类的matcher()方法生成一个Matcher对象
Matcher m = p.matcher(str);
StringBuffer sb = new StringBuffer(); // 使用find()方法查找第一个匹配的对象
boolean result = m.find(); // 使用循环找出模式匹配的内容替换之,再将内容加到sb里
while (result) {
m.appendReplacement(sb, m.group(0) + "\n ");
result = m.find();
}
// 最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里;
m.appendTail(sb);
return FourSpace+sb.toString();
}上面为java的下面为.net的 但是我只是写了一部分了,到了 java部分的appendReplacement 这个方法,死活搞不懂怎样转换为.net的语言,求大神帮忙啊!!!!!!!! /**
* 在分隔符后加上回车
* @param str
* @param splitStr
* @return
*/
private static string getAddEnterStr(string str, string splitStr)
{
Regex rx = new Regex(splitStr, RegexOptions.Compiled | RegexOptions.IgnoreCase); Match matches = rx.Match(str); StringBuilder sb = new StringBuilder(); // sb.Append(str);
// 使用find()方法查找第一个匹配的对象
Boolean result = matches.Success; // 使用循环找出模式匹配的内容替换之,再将内容加到sb里
while (result)
{
//这里究竟该怎样写呢? 反正下面写的这个是错误的
matches.Value.(sb.ToString(), matches.Groups[0].Value + "\n ");
result = matches.Success;
}
// 最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里;
sb.Append(matches.Value); return FourSpace + sb.ToString();
}
正则表达式Java.NET对象
解决方案 »
- Web Application Stress Tool(WAS)设置端口号问题
- 如何能让datagridviewcomboboxcolumn可选可编辑
- 从数据库统计分析并将数据导入Excel速度慢
- 如何编程监测电脑上是否安装了Firefox,并提取Firefox的版本号?
- 右键打开vdproj文件后.......
- FTPClient上传后文件名乱码
- 美化控件 IrisSkin2.dll 的问题 很奇怪
- 关于Timer的简单问题!
- c#查询excel报错
- aoyo~~~~出人命了,各们大虾们帮帮忙啊。。。。
- dataGridView 控件编辑状态下如何添加一行汇总字段
- repeater控件,大侠们进来看看啊
Matcher appendReplacement(StringBuffer sb, String replacement) 将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里。
StringBuffer appendTail(StringBuffer sb) 将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里。
写错了
我写的是 matches.Value.Replace(sb.ToString(), matches.Groups[0].Value + "\n ");
但是应该是错误的
将匹配出来的所有数据进行加工 , 不是在原字符串的基础上加工 你可以使用MatchCollection类进行处理
demo: string txt = "1 and 2 and 3 and 4 and 5";
//声明正则匹配类集合
MatchCollection mcs = Regex.Matches(txt, "[0-9]+");
foreach (Match item in mcs)
{
if (item.Success)
{
//提取出来的字符串
Console.WriteLine(item.Groups[0].Value);
}
}
Console.Read();