我想基于用户添加X之间的问题是我无法事先知道字符串的长度,因为它是动态变化的,因为添加了一些HTML标签
该字符串具有以下结构
文本.... AAA(X)BBB()CCC()DDD()....文本
可以使用HTML标记
让我的问题更简单, 问题是:找到尽可能接近DDD的last()或(X)。 示例
文字... AAA()BBB()CCC()DDD> span style =“color = red”> (X)> / span> ....文本
如何在不破坏文本文件结构的情况下改变X
的位置我尝试了几乎所有的字符串函数替换,删除,子字符串...等结果(x)的情况下的问题,如果文件中的其他地方有(x),我怎么能找到位置最后一个()有或没有X
编辑:
可能的输入可以是:
<p>
<span style='font-size:9.0pt;font-family:"Tahoma","sans-serif";color:black'>AAA() - BBB() - CCC() - DDD</span><b><span style='font-size:9.0pt;font-family:"Tahoma","sans-serif";color:red'>(X)</span></b>
<span style='font-size:9.0pt;font-family:"Tahoma","sans-serif";color:black'>
<o:p></o:p>
</span>
</p>
没有输出我只想知道last()的位置,在这种情况下,()的位置包含红色'&gt;之后的x(X)
答案 0 :(得分:2)
我想找到带有或不带X
的last()的位置
找到最后()
的位置和最后(X)
的位置,然后找出哪一个更大。
string input = "Text .... AAA (X) BBB () CCC () DDD () .... Text";
int withXPos = input.LastIndexOf("(X)");
int withoutXPos = input.LastIndexOf("()");
int lastPos = Math.Max(withoutXPos, withXPos);
答案 1 :(得分:1)
var test=@"<p><span style='font-size:9.0pt;font-family:'Tahoma','sans-serif';color:black'>AAA() - BBB() - CCC() - DDD</span><b><span style='font-size:9.0pt;font-family:'Tahoma','sans-serif';color:red'>(X)</span></b>
<span style='font-size:9.0pt;font-family:'Tahoma','sans-serif';color:black'><o:p></o:p></span></p>";
var withx = test.LastIndexOf("(X)");
var without = test.LastIndexOf("()");