Regex解析方括号
本文关键字:方括号 Regex | 更新日期: 2023-09-27 18:08:28
我有一个字符串:
<?xml version="1.0" encoding="utf-8"?>
<data>
<url>
<![CDATA[http://site.ru/uploadImage?returnUrl=http%3A%2F%2Fwww.site.ru%2Fdk%3Fcmd%3DgrPostImageUploaded%26amp%3Btkn%3D3089&returnErrorUrl=http%3A%2F%2Fwww.site.ru%2Fdk%3Fcmd%3DgrPostImageUploaded%26amp%3Btkn%3D3916&flashLoad=on&photoId=]]>
</url>
<tokens>
<token>
<!CDATA[258xA2Z4KDWBBRo%2FBbZBLZqw%2F1adFyhFOsWKJTidWIgxfIJ8RWZYdpIsOJ3U6RevDsRBR7gKeG2V29evBOFXUaqTg%3D%3D]]>
</token>
</tokens>
<maxImageSize>
1024
</maxImageSize>
</data>
我尝试用代码
解析token><![CDATA[(.*)]]
string token = Regex.Match(upload_info, @"CDATA[(.*)]]></token").Groups[1].Value;
但是token是空的。为什么?
[(.*)]
表示" (
、.
、*
或)
中的任意一个字符"。
你可能指的是@"CDATA'[(.*?)']']></token"
。
注意不情愿量词.*?
,否则您将匹配从第一个[CDATA
到最后一个]]</token
的所有内容。
但是首先不应该使用正则表达式来解析XML,尤其是CDATA
部分。这就是解析器的作用