首页 > 解决方案 > 正则表达式:在文本后保留最后一个单词

问题描述

Tommy Hilfiger 男士蓝绿色模拟手表 TH1791293_BBD

我需要拆分这个并保留最后一部分,即

TH1791293_BBD

问题是目标字符串之前的部分,即

Tommy Hilfiger 男士蓝绿色模拟手表

可以有不同的长度。

摘要:我需要使用空格分割文本并保留数组的最后一部分。附加约束:我需要在一行中完成,而不能将对象保存在变量中(类似这样):

a= $e.split(" "); 输出= a[a.length()-1]

欢迎任何解决此问题的方法。我刚刚开始使用 Parsehub 进行数据解析。

标签: arraysregexstringdata-extractionparsehub

解决方案


如果您只需要字符串的最后一部分作为输出,甚至不需要拆分,您可以使用以下来实现这一点并替换为$1(第一个匹配组)

^.*?(?<=\s)([^\s]+)$

演示

正则表达式实际上查找在行的最后一个空格之后没有空格的所有内容(这是通过检查单词是否在行尾之前以及在空格字符上使用正向预测来完成的)

在 java 中:string.replaceAll("^.*?(?<=\\s)([^\\s]+)$", "$1");


推荐阅读