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