1

C#のText.RegularExpressions.Regexクラス、このクラスでは、「years」という単語を含む文字列を検索しようとしています。

 string s11 ="java developer in new york 2years exp"

使用する前に

Regex = new Regex("(\d+)(years?)");

ここで私はs11の与えられた文字列のgetttigintervalueのような

Match match = regex.Match(ss);

if(match.Success)
{
    string s = match.Groups[1];
    string s1 = match.Groups[2];
}

しかし、これは整数でのみ機能します。たとえば、次のように文字列を変更するとします。

string s11="java developer in new york 0.10years exp"

動作を停止します。

整数または小数の両方で作業したい

    string s11="java developer in new york 2years exp"
    string s11="java developer in new york 0.10years exp"

どんな体でもこの問題の正しい解決策を与えることができますか?つまり、整数値と10進値の両方を検索します。

ありがとうpradeep

4

3 に答える 3

2

あなたのものは近いです。オプションの小数部分を追加するだけだと思います:

Regex = new Regex("((?:\d*\.)?\d+)(years?)");
于 2013-03-18T12:25:19.350 に答える
1

どうですか?

Regex = new Regex("([0-9]?\.?\d+)\s*(years?)");

また、インタラクティブに試すことができるツールがいくつかあります。

http://visualstudiogallery.msdn.microsoft.com/16b9d664-d88c-460e-84a5-700ab40ba452

于 2013-03-18T12:16:41.790 に答える
1

これを試して

new Regex(@"([0-9]*\.[0-9]+|[0-9]+)*years");

また、将来の参考のために、http://regexpal.com/は正規表現をテストするためのシンプルなツールであり、http://www.regular-expressions.infoには多くの例があります。

于 2013-03-18T12:16:55.263 に答える