gpt4 book ai didi

java - 匹配正则表达式Java之后和之前的所有内容

转载 作者:行者123 更新时间:2023-12-01 19:43:36 24 4
gpt4 key购买 nike

这是我的代码:

    String stringToSearch = "https://example.com/excludethis123456/moretext";

Pattern p = Pattern.compile("(?<=.com\\/excludethis).*\\/"); //search for this pattern
Matcher m = p.matcher(stringToSearch); //match pattern in StringToSearch

String store= "";


// print match and store match in String Store
if (m.find())
{
String theGroup = m.group(0);
System.out.format("'%s'\n", theGroup);
store = theGroup;
}

//repeat the process
Pattern p1 = Pattern.compile("(.*)[^\\/]");
Matcher m1 = p1.matcher(store);

if (m1.find())
{
String theGroup = m1.group(0);
System.out.format("'%s'\n", theGroup);
}

我想匹配 excludethis 之后和之后的 / 之前的所有内容。

使用 "(?<=.com\\/excludethis).*\\/" 正则表达式,我将匹配 123456/ 并将其存储在 String store 中。之后,使用 "(.*)[^\\/]" 我将排除 / 并获取 123456

我可以在一行中完成此操作,即将这两个正则表达式结合起来吗?我不知道如何将它们结合起来。

最佳答案

就像您使用了积极的向后展望一样,您可以使用积极的向前展望并将您的正则表达式更改为此,

(?<=.com/excludethis).*(?=/)

此外,在 Java 中你不需要转义 /

您修改后的代码,

String stringToSearch = "https://example.com/excludethis123456/moretext";

Pattern p = Pattern.compile("(?<=.com/excludethis).*(?=/)"); // search for this pattern
Matcher m = p.matcher(stringToSearch); // match pattern in StringToSearch

String store = "";

// print match and store match in String Store
if (m.find()) {
String theGroup = m.group(0);
System.out.format("'%s'\n", theGroup);
store = theGroup;
}
System.out.println("Store: " + store);

打印,

'123456'
Store: 123456

就像您想要获取值(value)一样。

关于java - 匹配正则表达式Java之后和之前的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54444334/

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