0

この文字列を置き換え 2000-12-13T13:59:59+12:002000-12-13 13:59:59

それは可能ですか?、この値が他の文字列/メッセージと混合されているため、一般的な置換を使用できません。そのため、置換するパターンを検索する必要があります。

4

3 に答える 3

0
MessageBox.Show(Regex.Replace(
    @"2000-12-13T13:59:59+12:00",
    @"\b(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})[+-]\d{2}:\d{2}\b",
    @"$1 $2"
));

upd:パターンの周りに単語の境界を追加し、説明とリンクをいくつか追加しました

\b                - word boundary (not to match "12000-12-13T..." or "X2000-12-13T..." etc, but still to match "(2000-12-13T..." and the like, optional)
(                 - start first capturing ($1)
\d{4}-\d{2}-\d{2} - date; 4 digits, dash, 2 digits, dash, 2 digits (\d for digit, {N} for exactly N of them)
)                 - end first capturing ($1)
T                 - literal "T"
(                 - start second capturing ($2)
\d{2}:\d{2}:\d{2} - time; 2 digits, colon, 2 digits, colon, 2 digits
)                 - end second capturing ($2)
[+-]              - utc offset sign; any of literal "+" or "-" (be careful with "-" inside [], if between other characters it defines range, like [a-z])
\d{2}:\d{2}       - utc offset; 2 digits, colon, 2 digits
\b                - word boundary (not to match "...+12:000" or "...+12:00a" etc, optional)

リソース:一般的な正規表現、 .net 特にC#、テスト用のシンプルなツール

于 2012-05-30T08:11:28.997 に答える
0

これを試して

\+\d{2}:\d{2}$

コード

string resultString = null;
try {
    resultString = Regex.Replace(subjectString, @"\+\d{2}:\d{2}$", "$${retain}", RegexOptions.IgnoreCase);
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}
于 2012-05-30T08:06:19.617 に答える
0

正規表現を使用する

(.*)\s(\d{4}\-\d{2}\-\d{2})T(\d{2}:\d{2}:\d{2})\+\d{2}:\d{2}\s(.*)

および次のコード

var regexPattern = @"(.*)\s(\d{4}\-\d{2}\-\d{2})T(\d{2}:\d{2}:\d{2})\+\d{2}:\d{2}\s(.*)";

        var dateString = "Some text here 2000-12-13T13:59:59+12:00 And some more text here";

        var formattedString = Regex.Replace(dateString, regexPattern, "$2 $3", RegexOptions.IgnoreCase);

出力します

2000-12-13 13:59:59

正規表現はかなり厳密なので、常にその形式である限り、他のテキストから取得できるはずです。形式がまったく変更された場合(時刻または日付が1桁)、一致しませんが、それが問題であるかどうかは、文脈がなければわかりません。また、パターンがテキストに1回だけ表示され、前後にスペースがあることも前提としています。

于 2012-05-30T08:18:38.753 に答える