2015-12-15 48 views
-3

我希望檢索與「$」中的數據串開始,以「$」結尾的任何字美元符號(「$」)結尾的詞是正則表達式開始,以

自衛隊sdfsdff FFFF DD $ dsf $ ddd $ 4rrr2 $。 $ spoif $ $ 1d4dd $

$(data)$之間的數據並不重要。

以「$」開始並以「$」結尾的4個字開始的數據串的結果。

我不知道我需要什麼語法來創建它。

+6

有你想出的任何代碼?請分享以展示你想達到的目標。 –

+1

請記住'$'在正則表達式中有特殊含義,所以你必須逃避它。 –

+0

這是我到目前爲止的代碼。新的正則表達式(@「$(。+?)$」 –

回答

0

由於您的字符串可能會開始與結束塊錢,你要確保你採取ungreedy方法

var input = " $dsf$ ddd $4rrr2$. $spoif$ $1d4dd$"; 
var regexp = new Regex(@"\$(.*?)\$"); 
foreach (Match match in regexp.Matches(input)) 
{ 
    Console.WriteLine(match.Groups[1]); 
} 
+0

謝謝你們的幫助! –

+0

由於這個答案被接受,所以我寧願使用'\ $([^ $] *)\ $'來匹配任何字符,而在最外面的$'s內使用''''。 –

1

您可以使用以下正則表達式:

\$\w*\$ 

的第一個和最後$有一個反斜槓逃脫他們,因爲他們是特殊的正則表達式字符。

中部\ W *與零個或多個字符

任何(文字,數字)匹配
+0

'\ w'與空格不匹配。 – stema

+0

謝謝,更正 –

1

此正則表達式會得到你想要的東西,假設你要美元符號之間的事情

\$\w+\$ 

或去這個,如果你將接受$$作爲一個有效的結果:

\$\w*\$ 

要打破它,這意味着:

\$的文字字符$,而不是爲「字符串的結束」的正則表達式的象徵符號,只是$沒有轉義字符\

\w - 任何單詞字符(不包括空格)

+*指定單詞字符的數量。 +意思是「1個或多個」和*意味着零個或多個


我建議你有一個在線的正則表達式測試儀周圍一齣戲,所以你可以看到你的正則表達式是實時直觀地做,而不必編譯並運行代碼。嘗試:

https://regex101.com/r/jM6lK6/2