正则,正则。

air123456789 2010-09-15 11:05:29
问:

string a=@"\cf1\lang2052\f0\fs30 cf2哈哈,Word \par
\cf2\f2\fs40 什么呢?cf2 \par
\cf3\f2 Hello!
\cf4 不知道哦。f2 \par
\cf2\f3 什么什么什么?"

如何取出
下面这5条记录呢? 下面的引号 不要。
"cf1 cf2哈哈,Word \par"
"cf2 什么呢?cf2\par"
"cf3 Hello!"
"cf4 不知道哦。f2\par"
"cf2 什么什么什么?"

Peter200694013答:
 
string a = @"\cf1\lang2052\f0\fs30 cf2哈哈,Word \par\cf2\f2\fs40 什么呢?cf2 \par\cf3\f2 Hello! \cf4 不知道哦。f2 \par\cf2\f3 什么什么什么?";
Regex reg = new Regex(@"(?<=\\)(cf\d)([\w\\]*) (.*?)((?=\\)|(?=$))");
foreach (Match m in reg.Matches(a))
{
Console.WriteLine(m.Groups[1].ToString() + " " + m.Groups[3].ToString());
}


这样只能在一行的时候才能读取,如果是要在不同行的呢? 要怎么改? (要求上也有所改动。)
现在的表达式是“(?<=\\)(cf\d+)([\w\\]*) (.*?)((?=\\[^ par])|(?=$))”
但是只能获取同一行的,如果是不同行的 就取不了 要怎么改? 要同时满足 多行和单行 都能取得。

...全文
58 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Peter200694013 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 air123456789 的回复:]
引用 3 楼 peter200694013 的回复:

这个?
C# code

string a = @"\cf1\lang2052\f0\fs30 cf2哈哈,Word \par\cf2
\f2\fs40 什么呢?cf2 \par\cf3
\f2 Hello! \cf4 不知道哦。f2 \par\cf2
\f3 什么什么什么?";
Regex reg = new Regex(……
[/Quote]
谢谢,我就那点分,全给你赚光了。
------〉
你可以直接站内信给我,我也会帮你回答的...
air123456789 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 peter200694013 的回复:]

这个?
C# code

string a = @"\cf1\lang2052\f0\fs30 cf2哈哈,Word \par\cf2
\f2\fs40 什么呢?cf2 \par\cf3
\f2 Hello! \cf4 不知道哦。f2 \par\cf2
\f3 什么什么什么?";
Regex reg = new Regex(@"(?<=\\)(……
[/Quote]
谢谢,我就那点分,全给你赚光了。
Peter200694013 2010-09-15
  • 打赏
  • 举报
回复
这个?

string a = @"\cf1\lang2052\f0\fs30 cf2哈哈,Word \par\cf2
\f2\fs40 什么呢?cf2 \par\cf3
\f2 Hello! \cf4 不知道哦。f2 \par\cf2
\f3 什么什么什么?";
Regex reg = new Regex(@"(?<=\\)(cf\d)([\w\\]*) (.*?)((?=\\)|(?=$))");
foreach (Match m in reg.Matches(a.Replace("\r\n","")))
{
Console.WriteLine(m.Groups[1].ToString() + " " + m.Groups[3].ToString());
}
wackyboy 2010-09-15
  • 打赏
  • 举报
回复

Regex.Replace(input, @"(?n)\\(?<a>cf\d+)(\\[^\\\s]+)*\s*(?<b>((?!\\cf).)+)", "$1 $2");

air123456789 2010-09-15
  • 打赏
  • 举报
回复
up...up.

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧