读书人

请问正则给TXT文本插入符号有关问题

发布时间: 2013-01-18 10:22:42 作者: rapoo

请教正则给TXT文本插入符号问题
给txt文件里所有的数字前后插入|符号, 我用regex.replace只能做到把匹配的数字替换掉,不能在匹配的数字前后加|。小弟的基础很差,没有系统学C#的,只是需要用什么就看什么,希望各位大侠可以给详细点的代码,谢谢
[解决办法]

string test = Regex.Replace("abc1def2ghijk34mn", @"(?is)(?<=\d)
[解决办法]
(?=\d)", "
[解决办法]
");

[解决办法]

string source = "abc1def2ghijk34mn";
Regex reg = new Regex(@"(?is)([\d]+)");
source = reg.Replace(source, @",$1,");
//source = "abc,1,def,2,ghijk,34,mn"

[解决办法]
首先说下我的方法没有2楼简洁 建议用2楼的
先回答你的问题 要连续的话我1楼的做法这样修改
string test = Regex.Replace("abc1def2ghijk34mn", @"(?is)(?=[^\d])(?<=\d)
[解决办法]
(?=\d)(?<=[^\d])", "
[解决办法]
");


2楼不加@的话 正则表达式里的特殊字符就要自己用斜杠转义了 为什么不用@呢
这是不加@的情况
string source = "abc1def2ghijk34mn";
Regex reg = new Regex("(?is)([\\d]+)");
source = reg.Replace(source, ",$1,");

[解决办法]
结帖也可以回复,只不过关注的人就不多了

@的作用是忽略转义,不加@的写法
Regex reg = new Regex("\\d+");
string result = reg.Replace(yourStr, @"
[解决办法]
$0
[解决办法]
");


PS:上面用到的(?is)在这里是不需要的
[解决办法]
string msg = "hello12fdsa3jkfdsf432324sdfdsafds";
msg = Regex.Replace(msg, @"(\d+)", ",$1,");
Console.WriteLine(msg);
Console.ReadKey();

读书人网 >C#

热点推荐