这是我的输入字符串。
33 FA PAX 001-7243691655/ETAA/USD908.61/19APR13/DCA1S211E/49881
134/S2-5
029 AF/FA 001-7243691655/ETAA/USD908.61/19APR13/DCA1S211E/
49881134/AA2010 S 14MAY SFOORD/AA 054 S 14MAY ORDMAN/AA
055 O 11JUN MANORD/AA1661 O 11JUN ORDSFO/BENNION/MEGHAN
R(CHD)
029 RF-MZ CR-DCA1S211E 49881134 SU 1983MZ/RO-67ECDAB1 DCA1S2
10W 49592222 19APR0550Z
这里我想根据起始数字来获取字符串.Digit是: -
33
029
029
答案 0 :(得分:1)
你可以使用这个正则表达式
^\s*(\d+).*$
如果以0到多个空格(\ s *)后跟1到多个数字开头,上面的正则表达式会选择一行
^
标记字符串的开头,$
标记字符串的结尾(注意:^
,$
是必需的,否则它会匹配字符串之间的任何地方)
\d
匹配单个数字。\d+
将匹配1到多个数字
(A|B)
将匹配A OR B
.
会匹配除换行之外的任何字符
*
是一个量词,它将之前的char 0与多次匹配
您的代码将是
List<String> lst=Regex.Matches(input,regex)
.Cast<Match>()
.Select(x=>x.Value).ToList();
现在您有所需行的列表(lst
)
答案 1 :(得分:1)
试试这个正则表达式我希望这会对你有所帮助
(?m)^\s*\d{2,3}|\/\d{3}
答案 2 :(得分:0)
您可以使用MultiLine
选项
Regex regex = new Regex(@"^\d+", RegexOptions.Multiline);
Match m = regex.Match(s);
答案 3 :(得分:0)
我总是使用RegexPal来测试我的正则表达式代码。
如果我正确理解您的问题,您希望收到每行的第一个“数字”。此外,数字可能会有2-3个字符长?
尝试以下正则表达式:
^ \ d {2,3}
^匹配换行符或第一个字符 \ d指定您正在寻找一个数字 {2,3}指定您要查找的数字可能在两到三个字母之间。