【发布时间】:2015-10-01 14:39:00
【问题描述】:
我正在尝试为我的流利服务器编写自己的 RegEx。 这是我的正则表达式:
^(?<server>)\[(?<time>[^\]]*)\] (.*) \[(?<filename>[^\]]*)\:(?<line>[^\]]*)\](.*) To: (?<to>((?!\ \-\- Headers).)*)(.*) ((?=From:[ ]*(?<from>[^:]*) ([a-zA-Z\-:]*)))
以日志为例:https://regex101.com/r/yJ7rU4/1
我想在我的 RegEx 中为我的服务器组定义一个值,但我不知道如何编写它以及是否可能。这个值没有写在我的解析文件上,我想把这个信息直接放在我的表达式上,像这样:
^(?<server>=serv1)\[(?<time>[^\]]*)\] (.*) \[(?<filename>[^\]]*)\:(?<line>[^\]]*)\](.*) To: (?<to>((?!\ \-\- Headers).)*)(.*) ((?=From:[ ]*(?<from>[^:]*) ([a-zA-Z\-:]*)))
【问题讨论】:
-
您的服务器组的字符串在哪里?我在您的示例中没有看到它
-
您希望您的正则表达式返回一个命名的捕获组,其中包含一个实际未出现在输入字符串中的给定常量文本?这不仅仅适用于正则表达式,因为它们只能返回输入的一部分,而不是输入中没有的东西。
-
@Fede 是的,你是对的,这个服务器名称不在我的输入中,我想将它添加到我的 RegEx 中。
-
@HannoBinder awww ok :s 太糟糕了。谢谢
-
@Maxence 为此发布了一个答案,但是如果发布了更好的样本,您的问题将得到准确回答