如何使用正则表达式在尖括号之间提取最后一个元素?

时间:2015-10-27 09:52:58

标签: php regex

如何使用正则表达式在尖括号之间提取最后一个元素?最后一个元素是货币,我只需要GBPUSD

<ABZ>-<BOS>-<Mon Dec 28 11:20:00 UTC 2015>-<Mon Dec 28 18:05:00 UTC 2015>-<EI>-<3241>-<EI>-<139>-<USBR>-<ROUND>-<GBP>
<ABZ>-<BOS>-<Mon Jan 04 11:20:00 UTC 2016>-<Mon Jan 04 18:05:00 UTC 2016>-<EI>-<3241>-<EI>-<139>-<NONE>-<ONEWAY>-<GBP>
<ABZ>-<BOS>-<Mon Jan 04 11:20:00 UTC 2016>-<Mon Jan 04 18:05:00 UTC 2016>-<EI>-<3241>-<EI>-<139>-<NONE>-<ROUND>-<USD>
<ABZ>-<BOS>-<Mon Jan 04 11:20:00 UTC 2016>-<Mon Jan 04 18:05:00 UTC 2016>-<EI>-<3241>-<EI>-<139>-<NSNS>-<ROUND>-<GBP>
<ABZ>-<BOS>-<Mon Jan 04 11:20:00 UTC 2016>-<Mon Jan 04 18:05:00 UTC 2016>-<EI>-<3241>-<EI>-<139>-<USBC>-<ONEWAY>-<GBP>
<ABZ>-<BOS>-<Mon Jan 04 11:20:00 UTC 2016>-<Mon Jan 04 18:05:00 UTC 2016>-<EI>-<3241>-<EI>-<139>-<USBC>-<ROUND>-<GBP>
<ABZ>-<BOS>-<Mon Jan 04 11:20:00 UTC 2016>-<Mon Jan 04 18:05:00 UTC 2016>-<EI>-<3241>-<EI>-<139>-<USBC>-<ROUND>-<USD>

我尝试了/&\<[A-Z]+\>(?=$)//\<[A-Za-z]+\>$/,但它无效。

2 个答案:

答案 0 :(得分:1)

person.getProfession()

试试这个。看看演示。

https://regex101.com/r/vP2zF2/4

<[^>]*>\s*$

答案 1 :(得分:0)

我使用了自己的表达式(没有转义字符),并使用它:

$str = "<ABZ>-<BOS>-<Mon Dec 28 11:20:00 UTC 2015>-<Mon Dec 28 18:05:00 UTC 2015>-<EI>-<3241>-<EI>-<139>-<USBR>-<ROUND>-<GBP>";

preg_match("/<[A-Za-z]+>$/", $str, $match);
$match = str_replace(array('<', '>'), array('', ''), $match[0]);
$currency = $match;

echo $currency;

我不需要/gm,因为它不是多行,而是逐行提取的CSV。