【发布时间】:2015-12-18 04:12:58
【问题描述】:
对不起这个标题,我不知道如何用一句话解释我的问题。
我正在尝试匹配日志中的字段,但我不知道它是在行的中间还是行尾。
三行示例:
B=this is a short sentence C=see you soon A=hello world
C=see you soon B=this is a short sentence A=hello world
A=hello world B=this is a short sentence C=see you soon
我想获取“C”字段的值(很快见)。 我的问题是最后一行,因为字符串末尾没有分隔符。
这是我尝试过的。
这个不匹配最后一行,因为它是最后一个字段:
C=([^=]+) \w+=
这个可行,但看起来过于复杂:
C=([^=]+)(?: \w+=|$)
你会怎么做?
【问题讨论】:
-
如果它对你有用,你希望得到什么答案?
-
是的。你的答案是正确的。有时指令必须很复杂才能涵盖所有角落和边缘情况。此外,请使用
+?而不是+。否则在第二种情况下将不起作用。 -
另外,什么语言?爪哇?
-
有时事情会奏效,但你觉得有更好的事情要做,或者你还不知道的简短方法......
-
@MadPhysicist 我不明白我为什么要使用 +?你能解释一下吗? :)