我有一个字符串str="<u>rag</u>"
。现在,我只想获取字符串"rag"
。如何使用正则表达式获得它?
我的代码在这里..
我得到了输出=“”
提前致谢..
C#代码:
string input="<u>ragu</u>";
string regex = "(\\<.*\\>)";
string output = Regex.Replace(input, regex, "");
const string HTML_TAG_PATTERN = "<.*?>";
Regex.Replace (str, HTML_TAG_PATTERN, string.Empty);
regex
不推荐用于解析html
regex
用于定期出现的模式。html
它的格式不规则(除了xhtml
)。例如html
,即使您没有closing tag
! 这可能会破坏您的代码,文件也是有效的。
使用像htmlagilitypack这样的 html 解析器
警告{不要在你的代码中尝试这个}
解决您的正则表达式问题!
<.*>
替换<
后跟 0 到多个字符(即u>rag</u
)直到最后>
你应该用这个正则表达式替换它
<.*?>
.*
是贪婪的,即它会吃尽可能多的字符
.*?
是懒惰的,即它会吃尽可能少的字符
你当然可以:
string input = "<u>ragu</u>";
string regex = "(\\<[/]?[a-z]\\>)";
string output = Regex.Replace(input, regex, "");
您不需要为此使用正则表达式。
string input = "<u>rag</u>".Replace("<u>", "").Replace("</u>", "");
Console.WriteLine(input);
你的代码几乎是正确的,一个小的修改使它工作:
string input = "<u>ragu</u>";
string regex = @"<.*?\>";
string output = Regex.Replace(input, regex, string.empty);
输出是'ragu'。
编辑:这个解决方案可能不是最好的。来自用户 the-land-of-devils-srilanka 的有趣评论:不要使用正则表达式来解析 HTML。实际上,另请参阅RegEx 匹配开放标签,XHTML 自包含标签除外。