在c#中,将数字与包含空格和连字符的字符串分开
本文关键字:连字符 字符串 空格 包含 数字 | 更新日期: 2023-09-27 18:05:55
我正在开发c# MVC应用程序。我得到了一个帐户名称和它的代码从视图的一个字段,但我必须隔离它们存储在数据库中。我已经使用了正则表达式,并成功地将代码与字符串的其余部分分开。但是在字符串部分,我只能得到空格或连字符之前的字符串。我的正则表达式是:
string numberPart = Regex.Match(s, @"'d+").Value;
string alphaPart = Regex.Match(s, @"[a-zA-Z]+'s+").Value;
d.code = numberPart;
d.name = alphaPart;
"2103010001 -销售-包装服务-羊肉(1F)"这是视图中的完整字符串。当我使用上面的Regex分隔代码和描述时,我得到以下内容,
numberPart = 2103010001
alphaPart = SALES
我要的是:
numberPart = 2103010001
alphaPart = SALES - PACKING SERV - MUTTON ( 1F )
做这个的合适表达式是什么?
对于第二个正则表达式,您基本上需要"第一个字母之后(包括)的所有内容"。因此,您可以简单地尝试
string alphaPart = Regex.Match(s, @"[a-zA-Z].*").Value;
如果你想更具体,你可以将"after"部分限制为你期望的字符,也许
string alphaPart = Regex.Match(s, @"[a-zA-Z][a-zA-Z0-9 ()-]*").Value;
但是你仍然需要前面的[a-zA-Z]
,否则你也会匹配数字部分
根据第一个-
字符进行分割。
Regex.Split(input, @"(?<=^[^-]*?)'s*-'s*");
演示