匹配后跟特殊字符串的文本

时间:2019-03-20 09:18:24

标签: regex pcre regular-language

我的正则表达式有问题,我试图在特殊字符串之后提取字符串/数字/任何内容。

我有这个字符串:

  

测试3098

TEST和它的值之间有6个空格,但是我不确定它是否总是6个空格。 我正在尝试使用此正则表达式(PCRE)

(?<=TEST\s\s\s\s\s\s).*?(?=\s)

结果应该是3098。使用正则表达式,我得到了正确的结果,但是它不够强大,如果空格数量发生变化,我将无法提取它。 后面的尺寸应有限。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用

TEST\s*\K\S+

如果应将空白数设置为某个最小/最大数,请使用limiting quantifier\s{2,}将匹配两个或多个,\s{1,10}将允许1到10个空白。

详细信息

  • TEST-TEST
  • \s*-0个或多个空格
  • \K-match reset operator忽略了与整体匹配存储缓冲区相距甚远的文本
  • \S+-1个以上非空格

请参见regex demo