2011-07-10 63 views
-5

我在正則表達式非常差,如果有人可以幫助這個表達式我將不勝感激C#正則表達式需要

正則表達式應該匹配: - 第一個斜槓之前的任何文本否則全文,然後文本,是不是在大括號

HELLO/anything/blah/bhah ---------> should return HELLO 
{HELLO}/anything/blah/bhah -------> should not return any thing 
ABC/blah/blah---------------------> should return ABC 
ABC-------------------------------> should return ABC 
+3

-1,不顯示這一努力作出 – tjameson

+0

@above我已經告訴過IAM在正則表達式非常差,對我來說似乎是巨大的邏輯來。 –

+0

正則表達式很容易。只需要花費一個小時來學習基礎知識:http://www.regular-expressions.info/ – TheDarkIn1978

回答

5

^\w+應該在哪裏工作:

^ - 匹配輸入的開始

\w - 匹配任何單詞字符(0-9A-ZA-Z再加上幾個標點符號)

+ - 匹配一個或多個

如果您更願意是明確的:

^[0-9a-zA-Z]+

[0-9a-zA-Z]意味着幾乎一樣\w

+0

更新修復了一個小錯誤 –

+1

這實際上並不完全正確,因爲第二行不會正確匹配 – deiga

+0

謝謝@deiga,你是對的,我應該確保正則表達式在開始時開始 –

0

這個簡單的正則表達式,你說他們相匹配的要求:

^[A-Z]* 

從字符串的開頭開始,它需要的任何大寫字母,直到它遇到一個字符不在列表中,這意味着它停在{/字符。

+0

{HELLO}/anything/blah/bhah --->正在返回 - >「」空字符串(我希望它不會返回任何內容),thanx幫助你。 James Deville的答案解決了我的問題 –

0

你可以使用這個表達式,例如:

var l = new string[] { 
    "HELLO/anything/blah/bhah", 
    "{HELLO}/anything/blah/bhah", 
    "ABC/blah/blah", 
    "ABC" 
}; 

foreach (var s in l) 
{ 
    Regex r = new Regex("^(?!{[^/]*})([^/]*)/?"); 
    Console.WriteLine(r.Match(s).Groups[1].Value); 
} 
+0

HELLO/anything/blah/bhah --->正在返回 - >「HELLO /」,thanx爲你提供幫助。詹姆斯德維爾的答案解決了我的問題 –

+0

不,這不是...你是否複製粘貼代碼,因爲它是? –