正则表达式:保留文字后的最后一句话

时间:2018-05-14 05:53:46

标签: arrays regex string data-extraction parsehub

  

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

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

  

TH1791293_BBD

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

  

Tommy Hilfiger男士蓝绿色模拟手表

可以有不同的长度。

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

  

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

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

2 个答案:

答案 0 :(得分:2)

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

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

Demo

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

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

答案 1 :(得分:2)

使用Extract工具,您可以使用

(\S+)$

下面,

  • (\S+) - 匹配并捕获第1组除空白之外的一个或多个字符
  • $ - 在字符串的末尾。

请注意,您应该使用捕获组,请参阅ParseHub Help Center reference

  

您必须对要包含在结果中的任何文本使用“()”捕获。 (可选)您可以启用“提取所有实例”。这将使extract命令返回匹配列表。