gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 02:34:13 30 4
gpt4 key购买 nike

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

开头的字符串的所有实例
/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

我尝试过的

我尝试匹配以以下开头的字符串\\b/usr/lib/ocf/resource.d/.*\\b
I got from here

代码

 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;
}

我认为问题是在每行末尾插入的 /n 字符。

最佳答案

试试这个方法

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

关于java - 正则表达式匹配字符串的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46644927/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com