[英]How do I retrieve the first alpha character string from withing a longer string using c#
下面是我嘗試從中檢索標簽名稱的兩個示例字符串,第一個使用.split函數檢索,但是第二個由於標點符號不正確而拋出錯誤,有沒有辦法選擇第一個字符串直到出現非字母字符? 同時還要從一開始刪除任何非字母字符嗎?
secondSection = secondSection.Split('/', ',')[1];
string example 1
191100201000430<*/SIZENAME,String,5,TOUPPER/*>
string example 2
191100400050100Price
有沒有辦法選擇第一組字母字符,直到出現非字母字符? 同時還要從一開始刪除任何非字母字符嗎?
一種方法,LINQ:
string allowed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var alllowedChars = str.SkipWhile(c => !allowed.Contains(c)).TakeWhile(allowed.Contains);
string label = new string(alllowedChars.ToArray());
我建議使用正則表達式和match :
using System.Text.RegularExpressions;
...
// We want 1st non-empty sequence of alpha (a..z A..Z) characters
var result = Regex.Match(str, "[A-Za-z]+").Value;
借助正則表達式,您可以輕松獲取所有字母名稱(如果需要,請saym忽略SIZENAME
, String
並獲取TOUPPER
),例如
string[] results = Regex
.Matches(str, "[A-Za-z]+")
.OfType<Match>()
.Select(match => match.Value)
.ToArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.