正则表达式捕获冒号之间的值,包括空白值
Regular Expression to capture values between colons including blank values
我有一个字符串,其中可能包含 9 个由冒号分隔的值。我将为该字符串有 2 个潜在结构:
value1:value2:value3:value4:value5::value7:value8:
value1:value2:value3:value4::value6:value7::value9
我需要能够分解它并存储每个单独的值。我们想出了这样的东西
^(.+)?\:(.+)?\:(.+)?\:(.+)?\:(.+)?(\:\:)(.+)?\:(.+)?(\:\:)$
但它不允许两种结构。
Adobe Analytics 正在使用它来捕获各个值(如果有帮助的话)。
我假设这是针对 Classification Rule Builder(CRB) 的。 @Wiktor 的评论答案没问题,但您不需要在他提供的正则表达式中包含 \n
。不过,他的正则表达式假设的一件事是,您所有现有的键都具有所有 9 个值,或者至少有占位符冒号。根据我的实践经验,情况并非总是如此。历史数据可能较少,因为需求发生了变化。如果您是这种情况,那么这是@Wiktor 提供的稍微修改过的正则表达式:
^([^:]*)(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?$
这将为您提供 </code> 到 <code>
的值:
value1:value2:value3:value4:value5:value6:value7:value8:value9
= value1
= value2
= value3
= value4
= value5
= value6
= value7
= value8
= value9
或者您可以为它们设置空的 ::
占位符,例如
value1:value2::value4:value5::value7:value8:value9
= value1
= value2
=
= value4
= value5
=
= value7
= value8
= value9
如果您没有完整的 9 值字符串,它也会匹配当前值,例如
value1:value2::value4
= value1
= value2
=
= value4
我有一个字符串,其中可能包含 9 个由冒号分隔的值。我将为该字符串有 2 个潜在结构:
value1:value2:value3:value4:value5::value7:value8:
value1:value2:value3:value4::value6:value7::value9
我需要能够分解它并存储每个单独的值。我们想出了这样的东西
^(.+)?\:(.+)?\:(.+)?\:(.+)?\:(.+)?(\:\:)(.+)?\:(.+)?(\:\:)$
但它不允许两种结构。
Adobe Analytics 正在使用它来捕获各个值(如果有帮助的话)。
我假设这是针对 Classification Rule Builder(CRB) 的。 @Wiktor 的评论答案没问题,但您不需要在他提供的正则表达式中包含 \n
。不过,他的正则表达式假设的一件事是,您所有现有的键都具有所有 9 个值,或者至少有占位符冒号。根据我的实践经验,情况并非总是如此。历史数据可能较少,因为需求发生了变化。如果您是这种情况,那么这是@Wiktor 提供的稍微修改过的正则表达式:
^([^:]*)(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?$
这将为您提供 </code> 到 <code>
的值:
value1:value2:value3:value4:value5:value6:value7:value8:value9
= value1
= value2
= value3
= value4
= value5
= value6
= value7
= value8
= value9
或者您可以为它们设置空的 ::
占位符,例如
value1:value2::value4:value5::value7:value8:value9
= value1
= value2
=
= value4
= value5
=
= value7
= value8
= value9
如果您没有完整的 9 值字符串,它也会匹配当前值,例如
value1:value2::value4
= value1
= value2
=
= value4