用于在字符串中间提取子字符串的正则表达式

时间:2016-03-17 20:39:42

标签: regex

寻找一个正则表达式,在我的字符串中提取不同位置的多个字符。例如,我正在使用的字符串是5490028400316201600008,它的长度始终相同,但数字可以更改。
我想提取前9个字符,然后跳过接下来的8个字符,提取下4个字符,然后忽略最后一个字符。在这种情况下,结果字符串将为5490028400000。我似乎找不到一个简单的方法来做这个,我对正则表达式相当新。提前感谢您的建议/帮助。

1 个答案:

答案 0 :(得分:1)

首先,这似乎更适合子字符串函数,它们通常更快,而且不容易出错。但是,出于学习目的,你可以想出某事。像:

(.{9}).{8}(.{4}).

这匹配任何(不仅仅是数字,对于数字使用\d代替)字符9次,将其保存在一个组中,匹配另外8个不会保存的字符,并最终将另外4个字符与第二组匹配 Concenate $1$2(在您的情况下为5490028400000),您应该没事。
请参阅此demo on regex101.com