我正在开发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 - SALES - PACKING SERV - MUTTON(1F)” 这是我在视图中的完整字符串。当我使用上面的Regex分离代码和描述时,我得到以下内容,
numberPart = 2103010001
alphaPart = SALES
我想要的是:
numberPart = 2103010001
alphaPart = SALES - PACKING SERV - MUTTON ( 1F )
这样做的恰当表达方式是什么?
答案 0 :(得分:1)
对于第二个正则表达式,你基本上想要#(包括)第一个字母"之后的所有内容。因此,您可以尝试
string alphaPart = Regex.Match(s, @"[a-zA-Z].*").Value;
如果您想更具体,可以限制""""部分只是你期望的角色,也许
string alphaPart = Regex.Match(s, @"[a-zA-Z][a-zA-Z0-9 ()-]*").Value;
但您仍然需要领先[a-zA-Z]
,否则您也会匹配数字部分。
答案 1 :(得分:1)