我想传出标签名称,然后输出将使用c#在文本之间开始标签和结束标签
var mystring="{start}
{leftimg}<http://frontier-gateway.net/postoffice/images/icons/icon_alert.png>{/leftimg}
{topimg}<http://frontier-gateway.net/postoffice/images/sent/img_header.png>{/topimg}
{usrname}<Administrator>{/usrname}
{msg}<This is a test broadcast message.>{/msg}
{action}<mysite.com/action.php>{/action}
{end}"
var a=Regex.Match(mystring, @"{leftimg}\s*(.+?)\s*{/leftimg}").Groups[0].Value;
现在,无论何时开始标签和结束标签,我都会只收到文本。
当前输出:
{leftimg}http://frontier-gateway.net/postoffice/images/icons/icon_alert.png{/leftimg}
我想要这种类型的输出(删除字符串中的开始和结束标签):
http://frontier-gateway.net/postoffice/images/icons/icon_alert.png
答案 0 :(得分:0)
在C#中,itemId
类的第一项返回完全匹配项。要访问第一个捕获组中的内容,您需要使用Data
而不是GroupCollection
。
来自GroupCollection
class documentation:
对于每个匹配项,GroupCollection包含三个Group对象。 第一个对象包含与整个正则表达式匹配的字符串。第二个对象,代表第一个捕获的对象 组,包含产品名称。第三个对象,代表 第二个捕获组,包含商标或注册商标 商标符号。
还有一件事,您需要在“ end tag”中转义正斜杠,即使用。我错了。在.NET正则表达式中不必转义正斜杠字符。.Groups[1]
代替.Groups[0]
以下内容应可以正常工作:
{\/leftimg}