正则表达式使用java在第一次斜杠后获取所有字符

时间:2018-02-09 19:07:01

标签: java regex

我试图在第一次斜线后获得所有角色 我尝试过以下但是没有工作 任何人都可以共享任何样本正则表达式以获得第一次斜杠后的所有字符

String pattern = "[A-Za-z\\s]|(?<=[A-Za-z\\s])/";  

样品输入 - xx / abs-12345/67890
预期产量 - abs-12345/67890

2 个答案:

答案 0 :(得分:4)

这是你需要的正则表达式:

 {
      "compileOnSave": false,
      "compilerOptions": {
        "declaration": false,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "module": "commonjs",
        "moduleResolution": "node",
        "outDir": "../../dist/out-tsc-e2e",
        "sourceMap": true,
        "target": "es5",
        "typeRoots": [
          "../../node_modules/@types"
        ]
      },
      "files": [
        "../../test/**/*.ts"
      ]
    }

lookbehind会查找(?<=/).+ ,然后匹配其后的每个非行结尾。由于正则表达式引擎从左到右检查,它总是会找到第一个斜杠。

/

您甚至可以在一行中执行此操作,而无需正则表达式。

    Matcher m = Pattern.compile("(?<=/).+").matcher("xx/abs-12345/67890");
    if (m.find()) {
        System.out.println(m.group());
    }

System.out.println(Arrays.stream(s.split("/")).skip(1).collect(Collectors.joining("/"))); 是输入字符串。

答案 1 :(得分:1)

我认为你不需要正则表达式来完成这项工作。你可以这样做。

String s = "123/abc23r";
String strAfterFirstSlash = s.substring(s.indexOf('/')+1,s.length());
char[] charsAfterFirstSlash = strAfterFirstSlash.toCharArray(); // If you need to get result in a char array
System.out.println(strAfterFirstSlash);

输出:

abc23r