[英]regex to get value from string
我試圖從字符串1-1:0.0.0(123123)
獲取值這是代碼
string str = "\r\n1-1:0.0.0(123123)\r\n";
string patt = @"1-1:0.0.0(\(.*?)\)\s";
Match match = Regex.Match(str, patt,RegexOptions.IgnoreCase);
string v = match.Groups[1].Value;
問題是我沒有得到明確的價值= "(123123"
有人可以解釋為什么一開始會有圓括號嗎? :/
您的首個圓括號匹配\\(
位於捕獲組(
的開始) 內 。
將(\\(
替換為\\((
。
另外,也0.0.0
替換為0\\.0\\.0
。
圓括號的轉義是不正確的。
將模式更改為以下格式(請注意,反斜杠位於第一個開口(
)的前面:
@"1-1:0.0.0\((.*?)\)\s";
您的轉義字符(\\(
放錯位置:
請嘗試以下
string str = "\r\n1-1:0.0.0(123123)\r\n";
string patt = @"1-1:0.0.0\((.*?)\)\s";
Match match = Regex.Match(str, patt, RegexOptions.IgnoreCase);
string v = match.Groups[1].Value;
這將打印
123123
您的捕獲組是(\\(.*?)
,這是一對括號,它們創建捕獲組,其內容為\\(.*?
-匹配一個文字開頭的括號和任何字符的非貪婪序列。
另請注意.
模式中的字符與文字點不匹配,但是與任何字符都不匹配,我指出這一點是因為目標字符串似乎包含點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.