【问题标题】:Match beginning of string with lookbehind and named group将字符串的开头与lookbehind和命名组匹配
【发布时间】:2019-01-15 16:00:44
【问题描述】:

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

假设我有以下简化的字符串:

1 hostname Here is some Text

一开始我可以有 1 或 2 位数字,后跟空格,我会忽略。 然后我需要捕获为“主机”的第一个单词 然后我想看看后面的第一个空格,以便捕获组“消息”的所有内容都从前 2 位数字和空格之后开始。即“主机名这是一些文本”

我的正则表达式是:

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

这给了我:

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

我无法弄清楚我的后视需要是什么样子。

感谢您的帮助。

【问题讨论】:

    标签: regex-lookarounds


    【解决方案1】:

    好的,我找到了。需要做的是将消息作为第一组,以及其他所有内容,包括消息组内的其他组:

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

    【讨论】:

      猜你喜欢
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 2018-02-24
      • 1970-01-01
      相关资源
      最近更新 更多