簡體   English   中英

C#Regex.Match遇到特殊字符時停止匹配

[英]C# Regex.Match stop match when meet special characters

這是我的代碼:

// Clear strange characters
String string1 = "d34-&%#*%(#**)2121js3412h";
String string2 = Regex.Match(string1, @"\d+").Value;
Console.WriteLine(string2);

上面的代碼輸出為: 34
預期的輸出是: 3421213412

為什么在Match停在匹配“ - ”字符(或任何特殊字符)?
我是否錯過了一些正則表達式規則?

您可以隨時使用Regex.Replace

string string2 = Regex.Replace(string1, @"[^0-9]", "");

如果需要所有匹配項,請使用Regex.Matches

var matches = Regex.Matches(string1, @"\d+").Cast<Match>().Select(x => x.Value);
string string2 = string.Concat(matches);

它與特殊字符無關。 這就是Match方法的行為,它返回找到的第一個匹配項。

暫無
暫無

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

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