有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java正则表达式如何获取子字符串?

以下是我的示例数据:

406/FG-2000

411/FA-2120

XX-226/2012-DFDF

OASDV-279/1016-FDFFD

如何在Javai中使用正则表达式(仅正则表达式)进行解析

406/FG-2000 -> 406 (from begining to /)

411/FA-2120 -> 411 (from begining to /)

XX-226/2012-DFDF -> 226 (from - to /)

OASDV-279/1016-FDFFD -> 279 (from - to /)

这是两条规则。(从开始到/)或(从-到/)


共 (2) 个答案

  1. # 1 楼答案

    试试这个:

    (^|-)[0-9]+/
    

    它将匹配从开始或从-到/

  2. # 2 楼答案

    此代码满足您的要求:

    input.replaceAll(".*(^|-)(.*?)/.*", "$2")
    

    如果只想将其限制为数字,请将匹配的正则表达式更改为".*(^|-)(\\d*?)/.*"

    这里有一个测试:

    public static void main(String[] args) {
        String[] inputs = { "406/FG-2000", "411/FA-2120", "XX-226/2012-DFDF", "OASDV-279/1016-FDFFD" };
        for (String input : inputs)
            System.out.println(input.replaceAll(".*(^|-)(.*?)/.*", "$2"));
    }
    

    输出:

    406
    411
    226
    279