0

ルールに一致する文字列からのレコードでオブジェクトを埋めたいです。ルールは、右側にスペースがある少なくとも 3 つのドットが含まれている場合 ( ". . . ")、左側の最初のテキスト、選択したばかりのテキスト、およびその長さを抽出します。

string strdata = "Nume. . . . . . .Data nasterii. . . . .Nr. . . .";
Regex rgx = new Regex(". . . ");//At least 3 dots ". . . "
foreach (Match match in rgx.Matches(strdata))
    lst.Add(new obj1{ Label = "?", Value = match.Groups[1].Value, Length = match.Groups[1].Length });

私は達成したい:

ここに画像の説明を入力

Q : どのパターンを使用する必要がありますか?

4

2 に答える 2

1

正規表現では、任意の文字に.一致することを意味します。に一致させるには、 としてエスケープする必要があります。式の 2 つ以上のインスタンスを一致させるには、 を使用します。.\.{2,}

string strdata = "Nume. . . . . . .Data nasterii. . . . .Nr. . . .";
Regex rgx = new Regex(@"(.+?)(\.( \.){2,})");//At least 3 dots ". . . "
foreach (Match match in rgx.Matches(strdata))
{
    lst.Add(new obj1
    {
        Label = match.Groups[1].Value,
        Value = match.Groups[2].Value,
        Length = match.Groups[2].Length
    });
}
于 2013-07-02T20:49:00.127 に答える
1

あなたが@"([\w\s]*)([\. ]{3,})"やろうとしていると私が想定していることを達成するために使用できます。

その正規表現はテキストをさまざまなグループに分割し、それらのグループ内にテキスト値とピリオドがあります。

「ソース」フィールドに入力してから「パターン」フィールドに入力することで、この正規表現テスターを使用して試すことができます。Nume. . . . . . .Data nasterii. . . . .Nr. . . .([\w\s]*)([\. ]{3,})

于 2013-07-02T20:54:18.027 に答える