寻找一个正则表达式,在我的字符串中提取不同位置的多个字符。例如,我正在使用的字符串是5490028400316201600008
,它的长度始终相同,但数字可以更改。
我想提取前9个字符,然后跳过接下来的8个字符,提取下4个字符,然后忽略最后一个字符。在这种情况下,结果字符串将为5490028400000
。我似乎找不到一个简单的方法来做这个,我对正则表达式相当新。提前感谢您的建议/帮助。
答案 0 :(得分:1)
首先,这似乎更适合子字符串函数,它们通常更快,而且不容易出错。但是,出于学习目的,你可以想出某事。像:
(.{9}).{8}(.{4}).
这匹配任何(不仅仅是数字,对于数字使用\d
代替)字符9次,将其保存在一个组中,匹配另外8个不会保存的字符,并最终将另外4个字符与第二组匹配
Concenate $1
和$2
(在您的情况下为5490028400000),您应该没事。
请参阅此demo on regex101.com。