在特定字符后获取特定字符串

时间:2019-10-11 03:19:17

标签: c# string

我有几个字符串:

  1. <img title=\"\\angle X &lt; \\angle Y &lt; \\angle Z\" src=\"http://latex.codecogs.com/gif.latex?\\angle&amp;space;X&amp;space;&lt;&amp;space;\\angle&amp;space;Y&amp;space;&lt;&amp;space;\\angle&amp;space;Z\" />

我想得到angle&amp;space;X&amp;space;&lt;&amp;space;\\angle&amp;space;Y&amp;space;&lt;&amp;space;\\angle&amp;space;Z

  1. <img title=\"1,25 - \\frac{5}{6} \\times 280\\% \\div 1\\tfrac{1}{6}\" src=\"http://latex.codecogs.com/gif.latex?1,25&amp;space;-&amp;space;\\frac{5}{6}&amp;space;\\times&amp;space;280\\%&amp;space;\\div&amp;space;1\\tfrac{1}{6}\" />

我想得到:

frac{5}{6}&amp;space;\\times&amp;space;280\\%&amp;space;\\div&amp;space;1\\tfrac{1}{6}

代码:

string imgSoal;
string imgName = imgSoal.Split("\\")[1];

我遇到了问题,即我从上面的代码中获得的字符串是angle&amp;space;X&amp;space;&lt;&amp;space;frac{5}{6}&amp;space;如何获得我想要的字符串(angle&amp;space;X&amp;space;&lt;&amp;space;\\angle&amp;space;Y&amp;space;&lt;&amp;space;\\angle&amp;space;Zfrac{5}{6}&amp;space;\\times&amp;space;280\\%&amp;space;\\div&amp;space;1\\tfrac{1}{6} )?

2 个答案:

答案 0 :(得分:1)

您可以使用IndexOf方法来获取\\(inputChar)的第一个匹配项,然后使用SubString方法来获取其余的字符串。

var result = str.Substring(str.IndexOf(inputChar) + 1);

如果给定字符串中不存在给定字符,则需要处理。

答案 1 :(得分:0)

根据您的要求,更好的方法是创建正则表达式以匹配所需的字符串,然后删除不相关的字符。我已经执行了以下代码,请检查。

private string stringA = "<img title=\"\\angle X &lt; \\angle Y &lt; \\angle Z\" src=\"http://latex.codecogs.com/gif.latex?\\angle&amp;space;X&amp;space;&lt;&amp;space;\\angle&amp;space;Y&amp;space;&lt;&amp;space;\\angle&amp;space;Z\" />";
private string stringB = "<img title=\"1,25 - \\frac{5}{6} \\times 280\\% \\div 1\\tfrac{1}{6}\" src=\"http://latex.codecogs.com/gif.latex?1,25&amp;space;-&amp;space;\\frac{5}{6}&amp;space;\\times&amp;space;280\\%&amp;space;\\div&amp;space;1\\tfrac{1}{6}\" />";
private string patternA = @"\?(.*?)/>";
private string patternB = @";\\frac(.*?)/>";

foreach (Match match in Regex.Matches(stringA, patternA))
{

    Console.WriteLine(match.Value);
    var tem = match.Value.Remove(0, 2);
    var res = tem.Substring(0, tem.Length - 4);
}
foreach (Match match in Regex.Matches(stringB, patternB))
{

    Console.WriteLine(match.Value);
    var tem = match.Value.Remove(0, 2);
    var res = tem.Substring(0, tem.Length - 4);
}