求一正则表达式

Zine_Alone 2012-03-20 09:36:13
1.根据字符"|"进行分隔. 但"\"视为转义字符

例如:

"abc\|[sef]eft|133" 正确分隔的结果为 "abc|[sef]" 和 "133"
"efg\\fUsprsfa|444" 正确分隔的结果为 "efg\fUsprsfa" 和"444"

谢谢了
...全文
89 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zine_Alone 2012-03-20
  • 打赏
  • 举报
回复
谢了,客兄..
-过客- 2012-03-20
  • 打赏
  • 举报
回复
要看你的源字符串是怎么来的
看你的例子只能是结果中再替换一次了,一个正则没办法既提取,又替换

            Regex reg = new Regex(@"(\\\||[^|])+");
Regex regT = new Regex(@"\\(?=[\\|])");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += regT.Replace(m.Value, "") + "\n";
}
EnForGrass 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lxcnn 的回复:]

这样?

C# code
Regex reg = new Regex(@"(\\\||[^|])+");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBo……
[/Quote]
向客客学习来了
Zine_Alone 2012-03-20
  • 打赏
  • 举报
回复
谢谢楼上的兄弟. split是对的,但是转义字符"\"应该要被去掉
正确出来的结果应该是 "abc|[sef]" 和 "133" 而不是"abc\|[sef]" 和 "133"
-过客- 2012-03-20
  • 打赏
  • 举报
回复
这样?

            Regex reg = new Regex(@"(\\\||[^|])+");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}

111,098

社区成员

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

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

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