如何获取原始字符串中找到捕获的子字符串的最后一个字符的位置

时间:2015-11-05 23:35:46

标签: c# asp.net regex

伙计这是我原来的字符串, '010000111'

我需要找到这种模式'10000111'。所以我使用下面的正则表达式来做到这一点。

匹配m = Regex.Match(“010000111”,@“[1] [0] [0] [0] [0] [1] +”);

我从这个Regex得到了正确的答案。但问题是我需要在原始字符串中获取所捕获字符串的最后一个字符的位置,这意味着根据我的示例我捕获的模式是'10000111' 根据捕获的模式,我的最后一个索引是7,但是当它与原始字符串比较时,它是8。

我使用了lastIndexOf('1')函数。但它给出了捕获字符串的索引。

你能帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

您不需要正则表达式来执行此操作。

要检查字符串是否包含其他字符串,请使用<xsd:schema>方法。这将为您提供序列中第一个字符的索引。

要获取最后一个字符的位置,您所要做的就是将测试字符串的长度相加并减去1:

someString.IndexOf("someOtherString")

参考:https://msdn.microsoft.com/library/k8b1470s(v=vs.110).aspx

答案 1 :(得分:1)

您想要使用正则表达式的任何特殊原因?我想你可以通过简单地使用public class Car { private String name; private List<Dealership> dealerships; // getters & setters ... } public class Dealership { private String model; private Integer year; // getters & setters ... }

来完成你想要完成的任务
IndexOf

答案 2 :(得分:0)

您可以使用以下方法:

private int findLastIndex(string s1, string s2)
{
  if (s1.indexOf(s2)>-1)
  {
    return s1.indexOf(s2) + s2.Length - 1;
  }
  else
    return -1; //not found
}