在正则表达式中需要帮助 - 在特定单词后匹配6位数

时间:2015-11-03 04:40:43

标签: regex

我在正则表达式中需要一些帮助。下面是我的输入字符串,我需要在'CHK'之后的6个数字/字符

输入:1509280928CR000000058839,19NCHK00212953 输出:002129

我尝试使用[CHK]{3}([0-9]{6}),但它与CHK匹配。你能帮我吗?

2 个答案:

答案 0 :(得分:2)

你需要使用lookbehind。并且不要将CHK放入角色类[],因为[CHK]{3}不仅会与CHK匹配,还会与KKKCCC匹配等所有可能的组合。

(?<=CHK)[0-9]{6}

OR

使用如下所示的捕获组,从组索引1中获取所需的字符串。

CHK([0-9]{6})

答案 1 :(得分:1)

您可以像使用

一样使用Positive LookBehind
for(int row=0 ; row < theSum.length ; row++)

这将检查字符串中的单词(?<=CHK)(\d{6}) ,并在这些单词后抓取确切的CHK位数