0

我想从以下字符串中删除所有 html 标记并将其拆分,而不使用句点(句号)作为匹配字符。下面的字符串是动态的,可以在列表标签​​内有更多的条件

<li>This Offer cannot be redeemed with any other offer.</li><li>Only one Offer can be used at a time.</li><li>This Offer is not transferable.</li><li>......</li><li>....</li</ul></div>

我期待以下结果

  1. 此优惠不可与任何其他优惠同时兑换。
  2. 一次只能使用一个优惠。
  3. 此优惠不可转让。
  4. ……
  5. ……
4

3 回答 3

1
String[] myString = yourString.replace("<li>", "").Split(new string[] { "</li>" }, StringSplitOptions.RemoveEmptyEntries);

尝试这个

const string HTML_TAG_PATTERN = "<[^/li]>"; // may require some change
string safeString = Regex.Replace(yourString, HTML_TAG_PATTERN, string.Empty);
String[] myString = safeString.Split(new string[] { "</li>" }, StringSplitOptions.RemoveEmptyEntries);

你也可以试试这个正则表达式

string acceptable = "li";
string stringPattern = @"</?(?(?=" + acceptable + @")notag|[a-zA-Z0-9]+)(?:\s[a-zA-Z0-9\-]+=?(?:(["",']?).*?\1?)?)*\s*/?>";
string yourString= Regex.Replace(yourString, stringPattern, string.Empty);
String[] myString = yourString.replace("<li>", "").Split(new string[] { "</li>" }, StringSplitOptions.RemoveEmptyEntries);
于 2013-03-26T05:44:22.037 回答
0

您可以删除所有 html 标记并通过以下代码拆分

string HTML_TAG_PATTERN = "<.*?>";
string str = @"<li>This Offer cannot be redeemed with any other offer.</li><li>Only one Offer can be used at a time.</li><li>This Offer is not transferable.</li><li>......</li><li>....</li</ul></div>";
string[] stString = Regex.Replace(str.Replace("</li>", "#$#"), HTML_TAG_PATTERN, string.Empty).Split("#$#".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
于 2013-03-26T05:58:47.280 回答
-1

如果您能够为您的<li>then 提供 id,您可以尝试使用类似以下的 javascript 代码>>

var str=doccument.getElementById("liID").innerHTML;

您可以根据您的应用程序在 Windows onload 事件或任何特定事件上尝试此操作。

于 2013-03-26T05:49:02.323 回答