正则表达式删除命名空间并将第一个字母转换为小写

时间:2014-11-16 06:04:57

标签: java regex

我正在尝试使用jxpath来浏览生成的java对象。我有一个xpath

形式的导航结构
a:FirstElement/aa:SecondElement/aaa:ThirdElement

我需要以下列格式获取字符串

firstElement/secondElement/thirdElement

如何在Java中使用正则表达式执行此操作?

2 个答案:

答案 0 :(得分:0)

一种可能的方式:

public static void main(String[] argv)
  {
    String str = "a:FirstElement/aa:SecondElement/aaa:ThirdElement";

    String[] splits = str.split("/?[a-z]*:");

    String finalStr = "";
    for (String s : splits)
    {
      if (!finalStr.isEmpty())
      {
        finalStr += "/";
      }
      finalStr += s;
    }

    System.out.println(finalStr);
  }

答案 1 :(得分:0)

你可以试试这个

    Matcher m = Pattern.compile(".+?:((.+?/)|(.+?$))").matcher(s);
    StringBuffer sb = new StringBuffer();
    while(m.find()) {
        int i = sb.length();
        m.appendReplacement(sb, m.group(1));
        sb.setCharAt(i, Character.toLowerCase(sb.charAt(i)));
    }
    s = sb.toString();