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

问题描述 投票:1回答:1

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

我有这个字符串:

测试3098

TEST与其值之间有6个空格,但我不太确定它是否总共6个空格。我正在尝试这个正则表达式(PCRE)

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

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

regex pcre regular-language
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.