簡體   English   中英

與C#中包含空格和連字符的字符串分開的數字

[英]separate number from String containing spaces and hyphens in C#

我正在開發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)”這是我從視圖中看到的完整字符串。 當我使用上述正則表達式分隔代碼和描述時,得到以下信息:

numberPart = 2103010001
alphaPart = SALES

我想要的是:

numberPart = 2103010001
alphaPart = SALES - PACKING SERV - MUTTON ( 1F )

合適的表達方式是什么?

對於第二個正則表達式,您基本上希望“在第一個字母之后(包括首字母)的所有內容”。 因此,您可以簡單地嘗試

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]因為否則您也要匹配數字部分。

只要做到分裂accoring到第一-字符。

Regex.Split(input, @"(?<=^[^-]*?)\s*-\s*");

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM