java - 如何从句子中提取子字符串直到分隔符
问题描述
嗨,我有一些这样的字符串:
location/city/home-a-berlin?/someNewAdress
我想提取放在“-a-”和“?”之间的单词柏林。我怎么能用java中的正则表达式做到这一点?
我可以通过使用字符串 API 来做到这一点,但有点坚持使用正则表达式。
String cityName = url.substring(url.lastIndexOf("-a-")+3, url.indexOf('?')) //berlin
解决方案
您可以使用具有否定字符类的捕获组。
-a-([^\?]+)\?
在 Java 中:
String regex = "-a-([^\\?]+)\\?";
String string = "location/city/home-a-berlin?/someNewAdress\n";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
输出
berlin
推荐阅读
- cordova - Cordova:从意图中获取文件名
- python - 如何堆叠 python 数据框?
- netbeans - 在 NetBeans 9.0 中运行简单程序时出错
- string - 不能使两个相同的二维码序列彼此相等
- java - 如何使用 open-feign 下载文件
- java - 如何保持 TCP 套接字打开?
- html - 将表格从规划中心嵌入到 Wix
- python - 如果仅在应该在熊猫数据框中使用后才能声明它,如何计算列的前一行值?
- fonts - CrystalReports 中的水平缩小文本
- java - 使用 GeckoDriver 运行 Java Selenium WebDriver 时 Firefox 无法连接