正则表达式匹配字符串的多个实例

时间:2017-10-09 11:03:04

标签: java regex string

我正在尝试从consul输出中提取一组字符串。 我想要做的是删除以

开头的所有字符串实例
1110 0001

输入字符串

/usr/lib/ocf/resource.d/

在上面的示例字符串中,它是

的字符串
-rwxr-xr-x. 1 root root 971 Sep 22 13:15 /usr/lib/ocf/resource.d/cloud_init_ocf.sh/n-rwxr-xr-x. 1 root root 662 Aug 28 11:25 /usr/lib/ocf/resource.d/credentialmanagercliRestartVM.sh/n-rwxr-xr-x. 1 root root 843 Sep 28 11:13 /usr/lib/ocf/resource.d/jboss_healthcheck.sh

我尝试了什么

我试图匹配开头的字符串 /usr/lib/ocf/resource.d/cloud_init_ocf.sh /usr/lib/ocf/resource.d/credentialmanagercliRestartVM.sh /usr/lib/ocf/resource.d/jboss_healthcheck.sh
I got from here

代码

\\b/usr/lib/ocf/resource.d/.*\\b

我认为问题是在每行末尾插入的 regexChecker("\\b/usr/lib/ocf/resource.d/.*\\b", output); private ArrayList<String> regexChecker(String regEx, String str2Check) { final ArrayList<String> result = new ArrayList<>(); Pattern checkRegex = Pattern.compile(regEx); Matcher regexMatcher = checkRegex.matcher(str2Check); String regexMatch; while (regexMatcher.find()) { if (regexMatcher.group().length() != 0) { regexMatch = regexMatcher.group(); result.add(regexMatch); } } return result; } 字符。

1 个答案:

答案 0 :(得分:2)

试试这种方式

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main{
    public static void main(String[] args) {

        String regex = "(\\/usr\\/lib\\/ocf\\/resource\\.d\\/[a-zA-Z_]*(\\.sh[\\s|]?)?)";
        String string = "-rwxr-xr-x. 1 root root 971 Sep 22 13:15 /usr/lib/ocf/resource.d/cloud_init_ocf.sh/n-rwxr-xr-x. 1 root root 662 Aug 28 11:25 /usr/lib/ocf/resource.d/credentialmanagercliRestartVM.sh/n-rwxr-xr-x. 1 root root 843 Sep 28 11:13 /usr/lib/ocf/resource.d/jboss_healthcheck.sh";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(string);
        int i =1;
        while (matcher.find()) {
                System.out.println("Group " + i++ + ": " + matcher.group(0));
        }
    }
}

,输出

Group 1: /usr/lib/ocf/resource.d/cloud_init_ocf.sh
Group 2: /usr/lib/ocf/resource.d/credentialmanagercliRestartVM.sh
Group 3: /usr/lib/ocf/resource.d/jboss_healthcheck.sh