正则表达式到c#中的字符串

时间:2010-11-23 15:48:02

标签: c# regex string

我必须在c#应用程序中使用正则表达式,并尝试将其用作字符串以使用regex.match方法。我的正则表达式与id="(tt[0-9]+)\|imdb类似,我将其转换为类似"id\"(tt[0-9]+)\\|imdb"的字符串,但它不起作用。你有任何解决方案或应用程序将正则表达式转换为字符串??

3 个答案:

答案 0 :(得分:3)

不确定你想要完成什么,所以我将走另一条路而不是其他帖子。

Regex.Match方法应该采用您尝试匹配的String,听起来您正试图从构造的RegEx向后转换为String。如果是这种情况,只需在RegEx上调用ToString()来获取传入的表达式。

如果您只是尝试将表达式作为字符串,那么下面的pattern var将使得使用其他帖子中提到的@。无论哪种方式,RegEx本身都应包含您想要匹配的模式。

  string text = "91919182389348487";
  string pattern = @"id=""(tt[0-9]+)\|imdb";

  Regex r = new Regex(pat, RegexOptions.IgnoreCase);
  Match m = r.Match(text);
  ...

答案 1 :(得分:2)

您可以放弃转义并使用@符号。

@"id=""(tt[0-9]+)\|imdb"

注意:你必须加倍双引号

答案 2 :(得分:1)

在C#中,最好在包含reg exps的字符串之前添加@

 @"id\"(tt[0-9]+)\\|imdb"

否则regexp引擎只会看到这个字符串:

  id"(tt[0-9]+)\|imdb

其中\|无法以您希望的方式识别。