使用RegEx

时间:2016-08-19 10:50:51

标签: regex

我目前正在努力使用RegEx规则从字符串中提取文本部分(2个字符)。

该字符串具有以下格式:

"ML6G 100.00 TEST"

我想在这里提取的是L6(这可以改变,但长度总是2个字符)我知道L6之前的字符长度可以不同(长1,2,3,4,5个字符) )

所以字符串看起来像这样:

" MMMMML6G 132.00 CBT" - >这里我想提取L6,但之前的字符长度可以不同(1,2,3,4,5个字符长)。

我知道我可以使用以下表达式提取/匹配文本:

^.{0,2}

但我不知道如何在(1或2或......或5个字符)之后提取某些东西

3 个答案:

答案 0 :(得分:1)

假设只有几个' M'以前和永远都是' G'之后,我会采取以下正则表达式:

<div class="rounded center conc bottom"></div>
<div class="rounded centerblinders"></div>
<div class="rounded center conc top"></div>

说明

[M] +匹配1个或更多&#39; M&#39;

(。{2,2})匹配任何长度为2的字符,在sperate组中返回这些字符。

&#39; G&#39;匹配&#39; G&#39; ; - )

答案 1 :(得分:1)

使用反向引用在开始时消耗重复的字符,然后捕获接下来的2个字符:

^(.)\1*(..)

这会捕获您想要的字符,例如{2}中的L6

答案 2 :(得分:1)

您可以使用简单的positive lookahead来查找第一个分段(空格),并从第一个分段的最后一个字符开始追溯2个位置。

(?=(.{2}).\s).*$

https://regex101.com/r/fV7vG3/1