Java中的字符串模式匹配
我想在输入字符串中搜索给定的字符串模式
例如
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}/”的字符串
# 1 楼答案
这只是一个^{} 的问题:
如果你需要知道它发生在哪里,你可以使用^{:
这对于匹配精确的字符串很好——如果你需要真正的模式(例如“三位数后最多两个字母A-C”),那么你应该查看regular expressions
编辑:好的,听起来你想要正则表达式。你可能想要这样的东西:
# 2 楼答案
您可以使用
Pattern
类来实现这一点。如果只想匹配{}
中的单词字符,那么可以使用以下正则表达式\w
是[a-zA-Z0-9_]
的缩写。如果你对_
没问题,那么就用\w
或者用[a-zA-Z0-9]
# 3 楼答案
如果要检查某个字符串是否存在于另一个字符串中,请使用
String.contains
如果要检查某个模式是否存在于字符串中,请在该模式的前面加上“.*”。结果将接受包含该模式的字符串
例如:假设您有一些正则表达式a(b | c),用于检查字符串是否匹配
ab
或ac
.*(a(b|c)).*
将检查字符串是否包含ab
或ac
这种方法的一个缺点是,它不会给你匹配的位置,你可以使用java。util。马瑟。如果需要匹配的位置,请查找()
# 4 楼答案
你可以用,则字符串中的值为
string.indexOf("{item}")
来做。如果结果大于-1 ^{