C#正则表达式匹配+接下来的n个字符

时间:2013-01-26 23:44:56

标签: regex

我是Regex的新手,我需要解析网站上的源代码。任何人都可以告诉我匹配单词后跟字符串中接下来的n个字符的语法是什么。

假设我想匹配单词“country”,后跟字符串中接下来的15个字符。

如果字符串为“...< tr class =”hover“>< td> country< / td>< td> RO< / td>< / t ......”我需要获得“country< / td>< td> RO”,我可以处理这样的字符串,理想情况下只会是“乡村RO”,但我不想要求太多。

2 个答案:

答案 0 :(得分:0)

取决于您的正则表达式引擎的风格:

"country.{15}"

应完全匹配“country”,后跟任意类型的15个字符。

值得注意的是,这是完全匹配。如果“country”后面没有正好15个字符,则此匹配将失败。这对你来说可能有问题。

"country.{1,15}"

这将匹配“country”,后跟任何字符(最多15个)。同样,根据您的使用情况,这也可能会有问题。

答案 1 :(得分:0)

类似于:(country)<\/td><td>(\.\.)

使用$ 1 $ 2作为输出应该可以满足您的需求。

阐释:

  1. 将()括号放在某个东西上可以让你用$ 1等来引用它。
  2. 否则您可以匹配确切的字符。
  3. 注意要使用反斜杠
  4. 来转义特殊的正则表达式字符
  5. 括号中的第二个匹配只是匹配接下来的两个字符,无论它们是什么。如果您有一个子集(即[A-Za-z]),那么最好使用
  6. 根据这个假设,我会使用类似:(country)<\/td><td>([A-za-z]{2})

    的东西

    也有助于找到一个好的参考:http://www.regular-expressions.info/reference.html