簡體   English   中英

C#正則表達式需要幫助

[英]C# Regular Expression need help

我嘗試在帶有正則表達式的字符串變量中找到搜索詞的一部分。

這是字符串變量內容:

string s_Var = "[ Object[Key='o_Module.Id'].Text ]"

[,],','和。 始終存在,但不包含Key =,Object和Text。 (可以不同)。 我想確定'和'之間的部分,例如'o_Module.Id'

我只想參加'和'之間的部分

您能幫我確定我需要的樣式嗎?

范例:

string s_Original_Text = "[ Object[Key='o_Module.Id'].Text ]"

=我不知道這個值可以是

[?[??'o_Module。?] ..? ]

如果單引號始終以您上面顯示的形式出現,為什么不只使用SubString查找'的第一個索引? 根據我在您的描述中使用正則表達式的描述,這是過大的。

試試這個代碼:

var s = "[['o_Module.Id'].Text]"; 
//"[Object[Key='o_Module.Id'].Text]"; //ALSO MATCHES THIS
var r = new System.Text.RegularExpressions.Regex(@"(\[?.*\[?')(.*)('.*)");
var m = r.Match(s);
if (m.Success)
{
    //0 contains whole string
    Console.WriteLine(m.Groups[2].Value); //Prints o_Module.Id
}

我認為通常應該這樣做,假設只有一組單引號:

System.Text.RegularExpressions.Match result = System.Text.RegularExpressions.Regex.Match("[ Object[Key='o_Module.Id'].Text ]", "'([^']*)'");

如果要添加該可選內容:

result = System.Text.RegularExpressions.Regex.Match("[ Object[Key='o_Module.Id'].Text ]", @"\[ (?:Object)?\[(?:Key=)?'([^']*)'\]\.(?:Text)? \]");
\[[^']*?'([^']+)

o_Module.id值將在第一個捕獲組中。

暫無
暫無

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

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