java - Java 正则表达式返回最后一个字
问题描述
String regex = "(some|text|)";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(input);
while (matcher.find())
{
int start = matcher.start();
int end = matcher.end();
System.out.print("Start index: " + start);
System.out.print(" End index: " + end + " ");
System.out.println(matcher.group());
}
嗨,我想返回完整的子字符串,包括单词的末尾。例如,
如果输入是:
String input = "I am a texte";
我希望它返回 7 11,我基本上希望将文本返回到“e”而不是“t”。这可能吗?如果是这样,如何实施?
解决方案
为什么要为此使用正则表达式?String 具有lastIndexOf来查找分隔符的最后一个索引(如空格),看起来您不是在尝试查找“单词”而是“在最后一个空格之后的子字符串”(这在许多情况下并不相同,许多语言),因此,只需使用:
String last = input.substring(input.getLastIndexOf(' ') + 1);
(可选为两行,检查是否getLastIndexOf
是一个合理的位置),完成了吗?
推荐阅读
- mysql - React + Nodejs + mySQl 中的 400 Bad Request Cloudinary Upload Error
- javascript - React Redux applyMiddleware 参数数量无效
- java - 来自内部关系字段的领域总和
- python - 使用 pyautogui 找不到图像
- gis - QGIS:如果检查剩余的多边形图层,其余的将不可见
- yield - Python3 中的产量
- flutter - Flutter Android Studio 仅在我的一个项目中运行之前不显示错误“没有错误或警告”
- python - Turtle 中的按键事件导致其他按键事件停止工作
- reactjs - 反应路由器不通过 history.push() 渲染组件
- node.js - Next.js - 无法从 getServerSideProps 访问 cookie