Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式转义问号和双引号_C#_Regex_Escaping - Fatal编程技术网

C# 正则表达式转义问号和双引号

C# 正则表达式转义问号和双引号,c#,regex,escaping,C#,Regex,Escaping,我有以下字符串多次出现的数据: <a href="default.asp?itemID=987"> 成功了。我做错了什么 尝试用\”转义点“.”。使用@运算符时,可以用“”重新获得双引号 您还需要转义正则表达式中的某些特殊字符,在本例中是字符。\ 试试这个: @"<a href=""default\.asp\?itemID=([0-9]*)"">" @“ ?和是正则表达式的特殊字符,但不能在字符串中“按原样”转义。 因此,如果您放入一个\,字符串将是错误的,如果您不放

我有以下字符串多次出现的数据:

<a href="default.asp?itemID=987">

成功了。我做错了什么

尝试用
\”转义点“.”。

使用@运算符时,可以用“”重新获得双引号

您还需要转义正则表达式中的某些特殊字符,在本例中是字符。\

试试这个:

@"<a href=""default\.asp\?itemID=([0-9]*)"">"
@“

是正则表达式的特殊字符,但不能在字符串中“按原样”转义。 因此,如果您放入一个
\
,字符串将是错误的,如果您不放入
\\
,它将被视为regexp的“特殊字符”。因此:

"@<a href=\"default\\.asp\\?itemID=([0-9]*)\">";
“@”;

“我想用正则表达式获取所有这些itemid。”你不应该这样做。改用HTMLAgilityPack。这永远不会过时:在所有这些讨论之后,人们仍然继续用正则表达式解析HTML。你知道,那些人是对的。你不应该用正则表达式解析HTML。也就是说,我看不出有什么理由不建议另一种选择,并试图帮助你。哇,似乎我在这里碰上了一根理智的神经。但我并不是在解析一些随机的HTML,在那里一切都可能发生。我只需要替换一些由WYSIWYG编辑器创建并存储在数据库中的链接。比预期的少一个。因为\是转义字符,所以要获得实际的反斜杠,需要\\
都有特殊的含义,因此也需要进行转义。是否仍有太多的黑斜杠?做记号这是你知道的@字符串。哦,我很确定你需要在.NET正则表达式中编写
\.
,尽管我可能弄错了。所以。。。在字符串的中间,我们正在寻找完全匹配的?正确的?那是怎么逃脱的?在我看来(以及我的测试),\变成\\和?变成\?给予\\\\。我错了吗?OP说文本是
省略@,这就是解决方案。谢谢。
<a href="default.asp\?itemID=([0-9]*)">
@"<a href=""default\.asp\?itemID=([0-9]*)"">"
"@<a href=\"default\\.asp\\?itemID=([0-9]*)\">";