我有一个字符串,其中有9个值由冒号分隔。我将为该字符串提供2个潜在的结构:
value1:value2:value3:value4:value5::value7:value8:
value1:value2:value3:value4::value6:value7::value9
我需要能够将其分解并存储每个值。我们想出了类似的东西
^(.+)?\:(.+)?\:(.+)?\:(.+)?\:(.+)?(\:\:)(.+)?\:(.+)?(\:\:)$
但它不允许两种结构。
如果有任何帮助,可以在Adobe Analytics中使用它来捕获各个值。
答案 0 :(得分:0)
我认为这是针对分类规则构建器(CRB)。 @ Wiktor的评论答案是可以的,但您不需要在他提供的正则表达式中包含\n
。然而,他的正则表达式假定的一件事是,所有现有的键都具有所有9个值或者至少具有占位符冒号。根据我的实践经验,情况并非总是如此;由于需求发生变化,历史数据可能会减少。如果是这种情况,那么这是@Wiktor提供的稍微修改的正则表达式:
^([^:]*)(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?$
这会为$1
通过$9
提供值:
<强> value1:value2:value3:value4:value5:value6:value7:value8:value9
强>
$1 = value1
$2 = value2
$3 = value3
$4 = value4
$5 = value5
$6 = value6
$7 = value7
$8 = value8
$9 = value9
或者您可以为它们设置空::
个占位符,例如
<强> value1:value2::value4:value5::value7:value8:value9
强>
$1 = value1
$2 = value2
$3 =
$4 = value4
$5 = value5
$6 =
$7 = value7
$8 = value8
$9 = value9
如果您没有完整的9值字符串,它也将匹配当前值,例如
<强> value1:value2::value4
强>
$1 = value1
$2 = value2
$3 =
$4 = value4