我有一組表達式來表示一些帶有一些參數的公式。像:如何匹配表達式中的參數名稱?
[parameter1] * [parameter2] * [multiplier]
還有很多其他人喜歡這樣。
我想用正則表達式,這樣我可以得到一個字符串列表(List<string>
),這將有內部的以下內容:
[paramter1]
[paramter2]
[multiplier]
我不經常使用正則表達式;如果你已經使用過這樣的東西,我會很感激,如果你可以分享。
謝謝!
我有一組表達式來表示一些帶有一些參數的公式。像:如何匹配表達式中的參數名稱?
[parameter1] * [parameter2] * [multiplier]
還有很多其他人喜歡這樣。
我想用正則表達式,這樣我可以得到一個字符串列表(List<string>
),這將有內部的以下內容:
[paramter1]
[paramter2]
[multiplier]
我不經常使用正則表達式;如果你已經使用過這樣的東西,我會很感激,如果你可以分享。
謝謝!
這應做到:
\[\w+\]
使用.NET:
string s = "[parameter1] * [parameter2] * [multiplier]";
MatchCollection matches = Regex.Matches(s, @"\[\w+\]");
您可能需要使用捕獲組在這裏:\[(\w+)\]
,所以你有Groups[1]
參數的名稱。
謝謝Kobi!我很感謝所有的答案,他們非常有用。但我完全需要你所描述的和.Net。謝謝。 – pencilCake 2010-03-14 18:19:59
正則表達式
\[[^]]*\]
將匹配在方括號什麼:如果這就是你問什麼,但
\[ the opening bracket;
[^]] anything but a closing bracket,
* repeated zero or more times;
\] the closing bracket
我不知道......
我懷疑括號是重點,而不是真正的字符串的一部分。 – kenny 2010-03-14 13:33:05
這取決於參數是什麼樣的。
正則表達式的一般形式是:
\[{something which matches parameter names}\]
如果參數名稱只能包含字母,數字和下劃線,那麼你可能想是這樣的:
\[\w+\]
這將匹配包含至少一個字母,數字或下劃線的參數名稱。例如:
[parameter]
[parameter1]
[1st_parameter]
[10]
[a]
[_]
更通常的限制是接受含有至少一個字母,數字或下劃線的參數名稱,但必須以字母開頭:
\[[a-zA-Z]\w*\]
實例包括:
[parameter]
[parameter1]
[first_parameter]
[a]
,但它不會匹配:
[1st_parameter]
[10]
[_]
然而,你可能會認爲它應該匹配方括號之間的任何東西,這東西可以是一個參數名稱(也許你想在後一階段,以驗證參數名稱)
\[[^]]+\]
將匹配方括號之間的任何只要它至少包含1個字符。
如果您還想允許空方括號(即匹配[]
),那麼你會想:
\[[^]]*\]
請提供一些具體的例子。參數1 /參數2 /乘數允許使用哪些字符? – 2010-03-14 12:38:06