0

「12345」と「123.5」の両方の値を取得してコレクションに入れたい文字列があり、ループして何かを行うことができます。誰かがこれを手伝ってくれますか?

string test = "Hello World [12345] - [123.5]"

string anothertest = "Hello World [A12345 (05,00,45)] [518.6Z] [51.5]"

「A12345」「518.6Z」「51.5」でお願いします

4

2 に答える 2

2

次の正規表現を使用します。

\[(\d+\.?\d+)\]

group(1) が必要です。

たぶん、この半疑似が役立つでしょう...

Regex expression = new Regex(@"\[(\d+\.?\d+)\]");
var results = expression.Matches(test);
foreach (Match match in results)
{
    //do whatever you want.
}
于 2013-03-28T20:44:24.570 に答える
0

編集した 2 番目の部分の場合:

\[(\d*\w*\.?\d*\w*)(?!\()

「?!」は否定的な先読みアサーションであり、この場合は「( が続かない前のものに一致する」ことを意味します。

于 2013-03-29T23:25:55.340 に答える