首页 新闻 会员 周边

求一个正则

0
悬赏园豆:20 [已解决问题] 解决于 2009-06-04 08:50

有一段文本中包含若干个“[_______]”符号,也就是中括号之间包含若干个下划线,下划线的个数不同,但至少有一个。

要求将每个这样的符号都替换成文本框,同时文本框的size和maxlength是所替换的符号中下划线的字符长度,也就是替换成以下文本 <input type="text" size="下划线长度" maxlenght=''下划线长度''  />

luotong的主页 luotong | 初学一级 | 园豆:4
提问于:2009-06-03 12:09
< >
分享
最佳答案
0

Code
class Program
{
static void Main(string[] args)
{
string input = @"常规文本常规[__________]文本常规文本[________]常规文本常规文本常规文本
常规文本常规文本常规[______]文本常规文本常规文本常规
文本[____________]常规文本常规文本常规文本常规文本常规文本常规[__________________]文本常规文本常规文本常规文本
常规文本[________________________]
";

var r
= new Regex(@"\[_+\]");
foreach (Match f in r.Matches(input))
{
input
= input.Replace(f.Value,string.Format(@"<input type=""text"" size=""{0}"" maxlenght=""{0}"" />",f.Length));
}

Console.WriteLine(input);
Console.ReadLine();
}
}

 

 

前面那位的Regex("_+")会匹配到"[]"以外的_字符。

斯克迪亚 | 老鸟四级 |园豆:4124 | 2009-06-03 17:01
其他回答(1)
0
Code
string input = "你好,[______]";
Regex regex
= new Regex("_+");
Match match
= regex.Match(input);
input
= input.Replace(string.Format("[{0}]", match.Value), string.Format("<input type='text' size={0} maxlength={0}/>", match.Value.Length));
this.form1.InnerHtml = input;

 

i.Net | 园豆:54 (初学一级) | 2009-06-03 13:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册