我想写一个正则表达式从splunk中的字符串末尾拉出第n个字段。请让我知道如何继续。
答案 0 :(得分:-1)
(\S+)(?:\s+\S+){4}\s*$
或者,您也可以使用以下内容:
\S+(?=(?:\s+\S+){4}\s*$)
两种方法都使用相同的逻辑。唯一的区别是第一个方法从字符串末尾捕获第5个元素并匹配字符串的其余部分,而第二个方法匹配字符串末尾的第5个元素,并确保第5个元素后面的内容与模式匹配。 / p>
\S+
匹配任何非空白字符一次或多次(?:\s+\S+){4}
完全匹配以下4次
\s+
匹配任何空格字符一次或多次\S+
匹配任何非空白字符一次或多次\s*
任意次数匹配任何空格字符$
断言行尾的位置进一步解释:
(\S+)
将任何非空格字符捕获一次或多次到捕获组中(?= ... )
其中...
代表某种模式(在我们的案例中为(?:\s+\S+){4}\s*$
)。这是一个积极的前瞻,可以确保在没有消费任何字符的情况下匹配的内容。