簡體   English   中英

如何使用C#從更長的字符串中檢索第一個字母字符串

[英]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忽略SIZENAMEString並獲取TOUPPER ),例如

string[] results = Regex
  .Matches(str, "[A-Za-z]+")
  .OfType<Match>()
  .Select(match => match.Value)
  .ToArray();

暫無
暫無

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

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