1

これらの正規表現をなんとか組み合わせることはできますか?:

        _regexes = new List<Regex>();
        _regexes.Add(new Regex("[0-9]*th Fl$"));
        _regexes.Add(new Regex("[0-9]*th Floor$"));
        _regexes.Add(new Regex("[0-9]*st Fl$"));
        _regexes.Add(new Regex("[0-9]*st Floor$"));
        _regexes.Add(new Regex("[0-9]*nd Fl$"));
        _regexes.Add(new Regex("[0-9]*nd Floor$"));
        _regexes.Add(new Regex("[0-9]*rd Flr$"));
        _regexes.Add(new Regex("[0-9]*rd Floor$"));
4

2 に答える 2

2
\d+(?:st|th|nd|rd) Fl(?:r|oor)?$
  • ゼロ桁ではなく、少なくとも1桁以上一致します(これはおそらく元の欠点です)
  • 忘れないでst
  • 一致Flする、FloorまたはFlr
  • (?:グループをキャプチャする代わりに、キャプチャしないグループを使用する
  • perl互換の正規表現を想定しています
于 2012-04-13T23:22:29.263 に答える
1
[0-9]*(st|th|nd|rd) (Fl|Floor)$ 

同じ効果があるはずです。演算子を使用すると、|実際には可能性の1つが必要だと言います。

[仮定_regexes.Add(new Regex("[0-9]*rd Flr$"));-rはタイプミスです]そうですか?

于 2012-04-13T23:16:41.340 に答える