1

「:」文字で文字列を分割するために、String.split メソッドを使用しようとしています。ただし、問題は、時間などで分割が分割されていることです。私はこれが起こることを望んでいません。とにかく、真の場合にのみ文字列を分割する述語を指定できますか。

理想的には、検索文字の両側の文字が数字でない場合にのみ文字列を分割したいですか?


編集:

入力例:

発行日: 1922 年 8 月 2 日 説明: 例 説明時間: 03:43

望ましい出力:

[「発行」、「1922 年 8 月 2 日説明」、「説明時間の例」、「03:43」]

4

3 に答える 3

3

Regexこの目的のために使用できます:

 var output = Regex.Split(input,"(?<!\\d\\s*)\\s*:\\s*|\\s*:\\s*(?!\\s*\\d)");
 //Example:
 string input = "a:b:c:12:00:00";
 //Output
 a
 b
 c
 12:00:00
于 2013-09-13T08:58:14.617 に答える
0

正規表現を使用して文字列タイプを見つけ、それがクレティレアに一致する場合は分割します。以下のようなもの

        Regex r = new Regex(".[0-9]:.[0-9]", RegexOptions.IgnoreCase);
        string s = "00:46";
        Match m = r.Match(s);
        string[] str = !m.Success ? s.Split(':') : null;
于 2013-09-13T09:04:50.433 に答える