如何在android中为此创build正则expression式?

假设我有这样一个string:

string = "Manoj Kumar Kashyap"; 

现在我想创build一个正则expression式来匹配Ka出现在空格之后的位置,并且还想获得匹配字符的索引。

我正在使用Java语言。

  • 如何从电话号码中删除“+”和国家代码?
  • 正则expression式validationPAN卡号
  • 正则expression式只能删除数字之间的空格
  • Java和Android的正则expression式差异
  • 如何在正则expression式中使用Java String的开始和结束标记?
  • 在SQLite中search时排除HTML标记和一些UNICODE字符
  • validationEditText中的电子邮件
  • 如何在Sqlite Android中实现字边界?
  • 就像在Java SE中一样,您可以使用正则expression式:

     Pattern pattern = Pattern.compile(".* (Ka).*"); Matcher matcher = pattern.matcher("Manoj Kumar Kashyap"); if(matcher.matches()) { int idx = matcher.start(1); } 

    你不需要一个正则expression式来做到这一点。 我不是Java专家,但根据Android文档 :

    public int indexOf(String string)
    在此string中search指定string的第一个索引。 searchstring从头开始,并移动到这个string的末尾。

    参数
    将string串起来查找。

    返回
    该string中指定string的第一个字符的索引,如果指定的string不是子string,则为-1。

    你可能最终会得到像这样的东西:

     int index = somestring.indexOf(" Ka"); 

    如果你真的需要正则expression式而不是indexOf ,可以这样做

     String[] split = "Manoj Kumar Kashyap".split("\\sKa"); if (split.length > 0) { // there was at least one match int startIndex = split[0].length() + 1; }