-1

Im' looking for a Regex pattern that finds a house letter.

Eks(looking for the letter d).

1. Streetname 3d, 7000 Town Country. 
2. Streetname 3 d, 7000 Town Country. 
3. Streetname 13d, 7000 Town Country. 
4. Streetname 13 d, 7000 Town Country. 

I'm writing i C#.

4

3 に答える 3

2

いくつかの組み合わせ:

const string address = "Streetname 3d, 7000 Town Country";
string streetPart = address.Split(',')[0];
char letter = streetPart[streetPart.Length - 1];
bool isLetter = char.IsLetter(letter);
Debug.WriteLine("{0}, isLetter: {1}", letter, isLetter);

おそらく動作します...

出力:d, isLetter: true

于 2012-05-22T11:21:10.333 に答える
1

このパターンはあなたの4つのケースでうまくいくと思います。私はコードをテストしませんが、試してみて教えてください。

string sPattern = "[a-zA-Z 0-9]*([a-zA-Z]),.*";
int i = 0;
foreach (string s in address)
{
     Match m = Regex.Match(s, sPattern);
     if (m.Success){
         houseLetter[i] = m.ToString(); 
     } else {
         houseLetter[i] = "Not Found";
     }
     i++;
}
于 2012-05-22T11:26:27.897 に答える
0

この問題を普遍的に解決する正規表現があると考えている場合は、考えるのをやめてください。あなたの計画では、私の両親の住所は

Ioakim 3rd 4242, 7000 Town Country    // "Ioakim 3rd" is the street name

ご覧のとおり、間違いなく間違った結果が何パーセントか出てきます。あなたの 4 つの例は、正しい結果を保証する必要がある唯一のケースですか?

于 2012-05-22T11:15:12.927 に答える