簡體   English   中英

從C#中的字符串中的特定位置刪除數字

[英]Remove numbers from a specific place in a string in C#

/abcd1/ef/gh001/d

將以上行讀入字符串(字符串測試)

我想在abcd之后刪除號碼

所需的輸出是/abcd/ef/gh001/d

我使用了以下代碼

test = Regex.Replace(test, "[0-9]", "");

但是它會像這樣刪除行中的所有數字

/abcd/ef/gh/d

請幫忙!!

因為您知道數字在哪里,所以可以對表達式進行一些小的調整,使其變為: test = Regex.Replace(test, "(abcd)[0-9]+", "$1");

此表達式將匹配abcd1並將abcd放在組中。 然后稍后通過$1訪問該組,因此基本上您將用abcd替換abcd1

另一種選擇是test = Regex.Replace(test, "abcd[0-9]+", "abcd"); ,其作用相同。

您可以使用正向后視來確保僅替換abcd的數字:

test = Regex.Replace(test, @"(?<=abcd)\d+", "");

在上面的示例中,僅當一個或多個數字\\d+立即緊跟abcd字符串時,它們才會匹配。

演示。

就我而言,文本abcd不是常數-文本可以是任何東西

example1     /abcd1/ef/gh001/d
example2     /tmcy1/ef/gh001/d

但是字符串常量的位置。 它始終位於//之間的第一個

/**abcd1**/ef/gh001/d

您可以使用以下正則表達式替換:

(?i)^(/[a-z]+)\d+(.*)

並替換為$1$2

觀看演示

暫無
暫無

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

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