正则表达式转义问号和双引号
本文关键字:正则表达式 转义 | 更新日期: 2023-09-27 18:35:41
我有以下字符串的几个八进制的数据:
<a href="default.asp?itemID=987">
其中的项 ID 始终不同。我正在使用 C#,我想使用正则表达式获取所有这些 itemID。
起初我试过这个
"<a href='"default.asp?itemID=([0-9]*)'">"
但问号是一个保留字符。我考虑使用 @ 运算符禁用字符转义。但仍有一些双引号确实需要转义。所以那我会去
"<a href='"default.asp''?itemID=([0-9]*)'">"
应将其(作为字符串)转换为
<a href="default.asp'?itemID=([0-9]*)">
但是Regex.Match方法没有成功。我在这里尝试了完全相同的正则表达式,它奏效了。我做错了什么?
?
和 .
是正则表达式的特殊字符,但不能在字符串 litteral 中"按原样"转义。所以如果你放一个'
,它对于一个字符串来说是错误的,如果你不放''
,它就会被当作正则表达式的"特殊字符"。所以:
"@<a href='"default''.asp''?itemID=([0-9]*)'">";
使用 @operator 时,可以使用 " 重新获得双引号。
您还需要转义正则表达式中的某些特殊字符,在这种情况下,字符 .''?
试试这个:
@"<a href=""default'.asp'?itemID=([0-9]*)"">"
尝试使用'.
转义点"."字符