簡體   English   中英

正則表達式解析方括號

[英]Regex to parse square brackets

我有一個字符串:

<?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;

但是令牌是空的。 為什么?

[(.*)]表示“以下一個字符: (.*) ”。

您可能是說@"CDATA\\[(.*?)\\]\\]></token"

注意勉強的量詞.*? ,或者您將匹配從頭一個[CDATA到最后一個]]</token

但是首先您不應該使用正則表達式來解析XML,尤其是CDATA部分。 這就是解析器的用途。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM