将字符串的开头与后向和命名组匹配

时间:2019-01-07 12:49:31

标签: regex-lookarounds

需要帮助以匹配Lookbehind中的完整消息。

让我说以下简化字符串:

1 hostname Here is some Text

在一开始,我可能会有1或2位数字,后跟空格,我会忽略它们。 那么我需要将第一个单词捕获为“主机” 然后我想回溯到第一个空格,以便捕获组“消息”使所有内容都从前两个数字和空格开始。即“主机名,这里是一些文字”

我的正则表达式是:

^[1-9]\d{0,2}\s(?<host>[\w][\w\d\.@-]*)\s(?<message>(?<=\s).*$)

这给了我

host =“主机名” message =“这里有一些文字”

我不知道我的身后需要什么样。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,我找到了。需要做的是将消息放在第一个组中,并将所有其他消息(包括消息组中的其他组)放在第一个组中

^[1-9]\d{0,2}\s(?<message>(?<host>[\w][\w\d\.@-]*)\s.*$)