2013-07-09 207 views

回答

5

你可以簡單地使用此模式:

{([^{}]*)} 

這將匹配任何字符串,如{some content},它不包含任何其他組,如{some content}。你可以測試這個here

可以使用捕捉這樣的:

var str = "samir patel {[email protected]{[email protected]}}"; 
var regex = new Regex("{([^{}]*)}"); 
var matches = regex.Matches(str); 
var output = matches[0].Groups[1].Value; 
// output == "[email protected]" 

或者更簡單地說:

var str = "samir patel {[email protected]{[email protected]}}"; 
var output = Regex.Match(str, "{([^{}]*)}").Groups[1].Value; 
// output == "[email protected]" 
+0

這給出像{[email protected]}。感謝您達到這個水平。但如何刪除括號。我需要輸出像[email protected] – Nijesh

+0

第一組是沒有括號的內容。看到我更新的答案。 –

+0

哇這個工作。謝謝。標記爲答案。 你能再給一個提示嗎?如果我使用<>方括號而不是{} ,比如「samir patel <[email protected] <[email protected] >>」 – Nijesh

1

假設使用JavaScript以外的語言,您可以使用(?<=\{)[^{}]*(?=\})得到此結果。在C#中,例如,這是

result = Regex.Match(str, @"(?<=\{)[^{}]*(?=\})").Value; 

如果您使用的JavaScript,使用\{([^{}]*)\}和比賽結果存取$1

var myregexp = /\{([^{}]*)\}/; 
var match = myregexp.exec(subject); 
if (match != null) { 
    result = match[1]; 
} 
+0

我使用C#.NET – Nijesh

+0

我用下面的代碼,並在輸出端獲得空 VAR正則表達式=新正則表達式(@ 「(<= \ {)[^ {}] *(= \?})?」); var matches = regex.Matches(strFromEmail); – Nijesh