簡體   English   中英

正則表達式,用於替換字符串中的[數字]

[英]Regex that Replaces [number] from String

我想從字符串中刪除[number];

輸入示例為:

1-家庭住址[我的第一個家庭住址#12] [1350]
2-這里有一些文字(這里有一些文字)
3-你好多洛爾坐amet [科斯特街74號] [1008]

輸出示例為:

1-家庭住址[我的第一個家庭住址#12]
2-這里有一些文字(這里有一些文字)
3-您好多洛爾坐amet [科斯特街74號]

我嘗試過的

var pattern = @"^[\d+]$";
var result = Regex.Replace(value, pattern, "");

我想刪除帶有二次符號“ [ ”&“ ] ”的粗體文本,如果它根本不包含它,則保持原樣(請參見第二個示例)。

您嘗試的模式"^[\\d+]$幾乎是正確的!該模式的問題是您使用的錨點^...$基本上表示該模式僅與括號中封裝的數字匹配,如果它們是輸入中僅包含字符串, 有關更多技術摘要,請參見錨點上的MSDN文檔。

模式\\[\\d+\\]將匹配封裝在方括號中的任何數字。

使用Regex.Replace :-

input = Regex.Replace(input, @"\[\d+\]", string.Empty);

請嘗試以下操作:

input = "home address [my first home address #12] [1350]"
string pattern = @"\[\d+\]";
string replacement = " ";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);

更新:(在使用某些代碼更新問題之后...)

var pattern = @"^[\d+]$";

此模式僅適用於數字。 以下模式應該適合您:

var pattern = @"\[\d+\]";

對於您的示例,您不需要正則表達式。

string address = "home address [my first home address #12] [1350]";

if(address.Count(x => x == '[') >= 2))
   address = address.Substring(0, address.LastIndexOf('['));

暫無
暫無

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

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