簡體   English   中英

正則表達式從字符串中獲取值

[英]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.

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