\d+(?:\.\d+)?
はあなたの条件に一致する必要があります。
\d+ # Match one or more digits
(?: # Try to match the following group:
\. # a dot
\d+ # one or more digits
)? # End of optional group
だから、あなたの文字列内のすべての試合反復処理するために:この正規表現は明らかに、1.05E-6
のように指数表記の数値とは一致しません
Regex regexObj = new Regex(@"\d+(?:\.\d+)?");
Match matchResults = regexObj.Match(subjectString);
while (matchResults.Success) {
// matched number: matchResults.Value
matchResults = matchResults.NextMatch();
}
を。
あなたはまた、次のタイムスケールをキャッチしたい場合は、あなたが今
(\d+(?:\.\d+)?)\s*(\w+)
を使用することができ、試合後、matchResults.Groups[1]
は番号が含まれています。 matchResults.Groups[2]
には番号に続く単語が含まれ、許可された単語のリストに対してチェックすることができます。この言葉は必須です。 e。それが欠けている場合は、正規表現全体が失敗します - あなたはそれをしたくない場合は、最後に?
を追加します。
あなたが本当に唯一の番号の後に数字やもタイムスケールを抽出したいですか?有効なタイムスケールに制限がありますか? e。チェック対象のリスト? –
私は、プログラムにコード化された事前定義された値との比較に基づいてタイムスケールをチェックします。 string.contains()を使用するだけです。 –