急!这个正则表达式怎么写? 既然你的字符串是定长,而且每次取得部分的长度也是固定的,那么用string.SubString();完全可以满足要求啊!为什么要写正则表达式呢?我比你更郁闷!? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同意 storm97(风暴不再) 定长的直接用Index就好了~ 你使用普通的StringBuilder类不是照样可以实现?既然是定长的字串,就很好用stirng.Find,Substring(.....) 既然是定长的,可以直接使用string.SubString()啊。。楼主不会是在练习正则表达式吧? 看来是我想错了那 判断格式是否正确总可以把因为数据来自仪器,有时会有错误正确的格式是 "<信息> " 前部分是信息,后面是空格(有可能全部都是信息,没有空格)信息长度不定,但知道是字母或数字错误的时候会是 " <错误信息> <错误信息> "怎么写才能判断出来? 这样如何:[A-Z][A-Z0-9]{35}[0-1]只写一部分其它类推 [A-Z][A-Z0-9]{35}[0-9][A-Z0-9]{71}[0-9]{5}[A-Z0-9]{5}[0-9]{12} "[A-Z][A-Z0-9]{35}"这样哪能判断出有没有空格、有空格后又不能再有信息 [A-Z][A-Z0-9 ]{35}[0-9][A-Z0-9 ]{71}[0-9 ]{5}[A-Z0-9 ]{5}[0-9]{12}特别注意不要遗漏式子中的空格。其实你可以自己写一个验证正则式的小程序,当你需要使用的时候先用它来验证一下自己的正则式。 string s = @"A1ZV965426641098738 1DDG 8399 DDG 031103025943"; string pattern = @"^(?<A>[A-Z])(?<35>.{35})(?<aaa>\d)(?<71>.{71})(?<51>(\d|\s)+)(?<52>(\w|\s)+)(?<12>\d{12})$"; Regex r = new Regex(pattern); Match m = r.Match(s); if(m.Success) { Console.WriteLine(m.Groups["A"].Value); Console.WriteLine(m.Groups["35"].Value); Console.WriteLine(m.Groups["aaa"].Value); Console.WriteLine(m.Groups["71"].Value); Console.WriteLine(m.Groups["51"].Value); Console.WriteLine(m.Groups["52"].Value); Console.WriteLine(m.Groups["12"].Value); } 纠正一下:string pattern = @"^(?<A>[A-Z])(?<35>([A-Z0-9]|\s){35})(?<aaa>\d)(?<71>([A-Z0-9]|\s){71})(?<51>(\d|\s){5})(?<52>(\w|\s){5})(?<12>\d{12})$"; 不好意思刚刚粘错了:(string pattern = @"^(?<A>[A-Z])(?<35>[A-Z0-9 ]{35})(?<aaa>\d)(?<71>[A-Z0-9 ]{71})(?<51>[0-9 ]{5})(?<52>[A-Z0-9 ]{5})(?<12>\d{12})$"; 原来可以用 () 来分组不错,可以截出来,也可以判断出 值 是否符合范围但不能过滤这样的错误 " <错误信息> <错误信息> "1、想知道 . 是代表任意字符吗?2、有没有办法判断这样的合法性:"<信息> "总长35字符,<信息>长不定,如果<信息>长不够35,用空格补 我现在就是用 长度+Regex 的方法来判断的不知道可不可以用一个 Regex 就能做到 关于Microsoft Office Document Imaging的问题? 简明的说一下“泛型” 高手救救我吧,关于微软AJAX扩展Sys.Debug.isDebug问题 利用.obj和.h文件怎么生成.dll文件 关于动态创建存储过程,急! 如何将子窗体中的数据传回父窗体(简单问题啊,我搞了两天了,在线等) C#中的基本文件操作问题,请高手指点 帮我看下这个功能 如何取WinForm中DataGrid选定行中某一列的值 大家討論討論正則表達式如何? SendKeys.Send不能在线程里用吗? 下个星期就要交活了,谁有人民币转换大写的C#函数,给我就用的那种,谢谢了
正确的格式是 "<信息> " 前部分是信息,后面是空格(有可能全部都是信息,没有空格)
信息长度不定,但知道是字母或数字错误的时候会是 " <错误信息> <错误信息> "
怎么写才能判断出来?
[A-Z][A-Z0-9]{35}[0-1]只写一部分其它类推
这样哪能判断出有没有空格、有空格后又不能再有信息
特别注意不要遗漏式子中的空格。
其实你可以自己写一个验证正则式的小程序,当你需要使用的时候先用它来验证一下自己的正则式。
string pattern = @"^(?<A>[A-Z])(?<35>.{35})(?<aaa>\d)(?<71>.{71})(?<51>(\d|\s)+)(?<52>(\w|\s)+)(?<12>\d{12})$";
Regex r = new Regex(pattern);
Match m = r.Match(s);
if(m.Success)
{
Console.WriteLine(m.Groups["A"].Value);
Console.WriteLine(m.Groups["35"].Value);
Console.WriteLine(m.Groups["aaa"].Value);
Console.WriteLine(m.Groups["71"].Value);
Console.WriteLine(m.Groups["51"].Value);
Console.WriteLine(m.Groups["52"].Value);
Console.WriteLine(m.Groups["12"].Value);
}
string pattern = @"^(?<A>[A-Z])(?<35>([A-Z0-9]|\s){35})(?<aaa>\d)(?<71>([A-Z0-9]|\s){71})(?<51>(\d|\s){5})(?<52>(\w|\s){5})(?<12>\d{12})$";
string pattern = @"^(?<A>[A-Z])(?<35>[A-Z0-9 ]{35})(?<aaa>\d)(?<71>[A-Z0-9 ]{71})(?<51>[0-9 ]{5})(?<52>[A-Z0-9 ]{5})(?<12>\d{12})$";
但不能过滤这样的错误 " <错误信息> <错误信息> "1、想知道 . 是代表任意字符吗?
2、有没有办法判断这样的合法性:
"<信息> "
总长35字符,<信息>长不定,如果<信息>长不够35,用空格补
不知道可不可以用一个 Regex 就能做到