正则表达式过滤文本后的数字

时间:2018-08-21 15:05:05

标签: regex pattern-matching

您能帮我解决这个例子吗?

BUILTIN\s+\d{1,2}

https://regex101.com/r/w7A3H7/1

我只想过滤出文本BUILTIN之后和x字符之前的数字。现在结果还包含单词BUILTIN,即我要删除的单词。

我也不能简单地使用\d{1,2}x,因为我必须确保它在单词BUILTIN的第二次出现之后。谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用以下模式:

BUILTIN\s+\K\d+(?=x)
  • BUILTIN文字子字符串。
  • \s+匹配空格,一个或多个匹配项。
  • \K重置运算符,用于重置匹配项。
  • \d+匹配数字。
  • (?=x)正向查找,可确保在数字后出现x

您可以尝试here


如果您使用的是不支持reset运算符的正则表达式,则可以使用:

(?<=BUILTIN\s{11})\d+(?=x)
  • (?<=BUILTIN\s{11})向后查找文字子字符串,后跟11个空格。
  • \d+匹配数字。
  • (?=x)正向查找,可确保在数字后出现x

您可以尝试here


Match 1
Full match  57-59   `48`
Match 2
Full match  137-138 `4`
Match 3
Full match  283-285 `24`
Match 4
Full match  363-365 `48`