簡體   English   中英

使用子字符串函數或正則表達式

[英]Use substring function or a regular expression

我想從字符串中提取ID,其形式為“somethinguseless_XXXXX”。 XXXXX是我需要的ID。 字符串始終具有相同的長度,格式不會隨時間而變化。

我找到了兩個解決方案來提取ID => oldAttribute.substring(17,22)Regex.Match(oldAttribute,@"_([0-9]{5})").Groups[1].value

你認為哪一個比另一個好?

如果長度一致,則Substring()也可以正常工作並且可能性能更好。 對幾百萬次迭代的快速測試可能會驗證這一假設。

就個人而言,我選擇了3,根據下划線拆分字符串。

var id = "somethinguseless_XXXXXX".Split('_')[1]; 

你會想做一些更好的測試,以確保數組是你想要的長度,但這是我可能采取的方法。

我知道你已經說過,字符串的長度總是相同的,並且不會隨着時間的推移而改變,但是我的經驗告訴我,事情總是會改變,而且往往並不總是一樣。

使用RegexSubString更易於使用,但我認為SubString的性能更高。

substring是更好的選擇 - 當你知道字符串中ID的位置時。

我的建議,如果格式相同,如果“somethinguseless”不包含_,你可以使用string.split();

int p=5; //length of the substring    
string id = oldAttribute.substring(oldAttribute.Length-p, p)

去第二個。

Regex.Match(oldAttribute,@ “_([0-9] {5})”)。組[1]。價值

這甚至可以用於下划線之前的字符串長度無論如何變化。

暫無
暫無

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

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