首页 > 解决方案 > 获取一些字符串正则表达式

问题描述

我有下面的字符串,我只想获取 string: 的值AttributeReferenceID。我需要做什么?

我试过这个[A]ttributeReferenceID (?<referenceID>\d+),但不能成功。我想要的字符串位于日志的任何部分,因此该字符串可能位于第一行、第二行或最后一行。

要获取的字符串:

AttributeReferenceID    123
AttributeReferenceID    456
AttributeReferenceID    789

要丢弃的字符串:

ISCCAttributeReferenceID    091281 [09123na0]
ISCCAttributeReferenceID    123012 [i1208221]
ISCCAttributeReferenceID    091221 [0oas9019]

标签: regexregex-negationregex-group

解决方案


如果您的正则表达式风格接受积极的后视,您可以使用以下

(?<=^AttributeReferenceID\s{4})(\d+)

演示

如果您要搜索的特定字符串后跟4空格,则正则表达式将在匹配之前查找。如果空格的长度可能会有所不同,那么您将不得不找到另一种解决方案。以下应该正常工作。

(?:^AttributeReferenceID\s+)(\d+)

演示

并采取第一组。


推荐阅读