当前位置: 首页 > 面试题库 >

Java中的字符串模式匹配

邢凯歌
2023-03-14
问题内容

我想在输入字符串中搜索给定的字符串模式。

例如

String URL = "https://localhost:8080/sbs/01.00/sip/dreamworks/v/01.00/cui/print/$fwVer/{$fwVer}/$lang/en/$model/{$model}/$region/us/$imageBg/{$imageBg}/$imageH/{$imageH}/$imageSz/{$imageSz}/$imageW/{$imageW}/movie/Kung_Fu_Panda_two/categories/3D_Pix/item/{item}/_back/2?$uniqueID={$uniqueID}"

现在,我需要搜索字符串URL是否包含“ /{item}/”。请帮我。

这是一个例子。实际上,我需要检查URL是否包含匹配“ / {a-zA-Z0-9} /”的字符串。


问题答案:

您可以Pattern为此使用类。如果您只想在中匹配单词字符,{}则可以使用以下正则表达式。\w是的简写[a-zA-Z0-9_]。如果您可以,请_使用\w[a-zA-Z0-9]

String URL = "https://localhost:8080/sbs/01.00/sip/dreamworks/v/01.00/cui/print/$fwVer/{$fwVer}/$lang/en/$model/{$model}/$region/us/$imageBg/{$imageBg}/$imageH/{$imageH}/$imageSz/{$imageSz}/$imageW/{$imageW}/movie/Kung_Fu_Panda_two/categories/3D_Pix/item/{item}/_back/2?$uniqueID={$uniqueID}";
Pattern pattern = Pattern.compile("/\\{\\w+\\}/");
Matcher matcher = pattern.matcher(URL);
if (matcher.find()) {
    System.out.println(matcher.group(0)); //prints /{item}/
} else {
    System.out.println("Match not found");
}


 类似资料:
  • 我正在使用来查找一个文本字符串是否包含另外两个字符串。但是它需要在一个正则表达式模式中。 例如,字符串中必须有“StringOne”和“StringTwo”。 我可以做< code > pattern . compile("(string one string two | string two string one "),但是两个字符串都很长,我想看看能不能压缩它。 如果我做< code >(st

  • 我需要取一个字符串,看看它是否匹配这样的格式 冒号的左边永远是文本,右边可能是文本或数字的混合。 比如:

  • 我对正则表达式是新手。 以下是我到目前为止在C#中所做的工作 显然,这并不违反所有指定的规则。有人能给点提示吗?

  • 问题内容: 更新: 感谢您的所有好评!我尝试了许多不同的正则表达式模式,但不明白为什么m.matches()没有执行我认为应该做的事情。当我改用 m.find() 以及调整正则表达式模式时,我能够到达某个地方。 我想匹配Java字符串中的模式,然后使用正则表达式(如Perl的$&运算符)提取匹配的部分。 这是我的源字符串“ s”: 我要提取“ America / Mexico_City”部分。 我

  • 我正在寻找与此非常相似的东西,只是我想要所有的匹配,而不仅仅是第一个。在javascript中,您可以添加一个“全局”修饰符来获得所有匹配项的列表,在Java中是否也有类似的可能?