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)?$
  • 匹配至少一个或多个数字,而不是零个数字(这可能是原始的一个缺点)
  • 不要忘记st
  • 匹配FlFloorFlr
  • 使用非捕获组(?:而不是捕获组
  • 假设 perl 兼容正则表达式
于 2012-04-13T23:22:29.263 回答
1
[0-9]*(st|th|nd|rd) (Fl|Floor)$ 

应该有同样的效果。使用|运算符,您实际上说您想要一种可能性。

[假设_regexes.Add(new Regex("[0-9]*rd Flr$"));- r 是错字] 是吗?

于 2012-04-13T23:16:41.340 回答