我需要你的帮助,我正在接收一个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, "#", "#");