获取字符串中包含的所有令牌



我需要你的帮助,我正在接收一个URL,它将包括令牌,我需要为其他事情计算。所以基本上我需要提取列表或另一个字符串中的所有令牌。

即String url= "https://example.com/#EMAIL#/F77A1B8BDF89B7E4E90206DAC26AA737?firstname=#FIRSTNAME#&lastname=#LASTNAME#">

所以结果应该是:result: #EMAIL#, #FIRSTNAME#, #LASTNAME#

我试过了:StringUtils.substringBetween (url,"#");StringTokenizer tokenizer= new StringTokenizer(url,"#");

但是什么都没起作用。

可以使用正则表达式提取#字符之间的所有字符。

var tokens = Pattern.compile("#[^#]+#").matcher(url).results()
.map(MatchResult::group).toList();

您也可以使用Apache Common Lang的StringUtils.substringsBetween,但它会删除结果中的分隔字符。

String[] tokens = StringUtils.substringsBetween(url, "#", "#");

最新更新