正则表达式:在不使用支持代码的情况下将不同长度的字符串拆分为多个组
Regex: Split string of varying length into multiple groups without using supporting code
- 我有一个包含多个子字符串的大小可变的字符串
- 这些子字符串由冒号分隔。
- 我需要捕获这些子字符串到组中,但我无法使用任何支持语言来执行此操作。它只能是正则表达式,并且可以在这个测试器中工作 https://regexr.com/。此限制的原因是我通过 UI 不支持附加代码 (Adobe Analytics) 来剪切字符串。这意味着我无法使用 'split()' 或 'explode()'.
等函数
- 我想要一个单个表达式作为答案。
示例 1:test1:test2:test3:test4
将被分成 4 组。
test1
test2
test3
test4
示例 2:123:abc
将被分成 2 组。
123
abc
这可能吗?
谢谢,克里斯
是的,其实很简单:
/([^:]+)/
我希望这就是你的意思:)
更新
在你优化你的答案之后,你的意思是你想在一场比赛中有多个小组。这与您通常使用正则表达式的方式相反(您可能已经意识到这一点),但是由于您的工具的给定限制,您能做的最好的是一组有限的组,您必须从第一个开始阅读匹配。
我不熟悉你使用的工具,所以我不能肯定它是否会产生任何负面影响 side-effects,但这将是你能得到的最接近的。最多 8 个组的示例:
([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?
不幸的是,处理不定组的正确解决方案是行不通的。您需要手动创建匹配组。只需根据需要(最多)为多个组复制以下内容:
([^:]+)?:?
它很丑,但可能会起作用。
但是,如果您需要完全动态的,那是不可能的。
- 我有一个包含多个子字符串的大小可变的字符串
- 这些子字符串由冒号分隔。
- 我需要捕获这些子字符串到组中,但我无法使用任何支持语言来执行此操作。它只能是正则表达式,并且可以在这个测试器中工作 https://regexr.com/。此限制的原因是我通过 UI 不支持附加代码 (Adobe Analytics) 来剪切字符串。这意味着我无法使用 'split()' 或 'explode()'. 等函数
- 我想要一个单个表达式作为答案。
示例 1:test1:test2:test3:test4
将被分成 4 组。
test1
test2
test3
test4
示例 2:123:abc
将被分成 2 组。
123
abc
这可能吗? 谢谢,克里斯
是的,其实很简单:
/([^:]+)/
我希望这就是你的意思:)
更新
在你优化你的答案之后,你的意思是你想在一场比赛中有多个小组。这与您通常使用正则表达式的方式相反(您可能已经意识到这一点),但是由于您的工具的给定限制,您能做的最好的是一组有限的组,您必须从第一个开始阅读匹配。
我不熟悉你使用的工具,所以我不能肯定它是否会产生任何负面影响 side-effects,但这将是你能得到的最接近的。最多 8 个组的示例:
([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?:?([^:]+)?
不幸的是,处理不定组的正确解决方案是行不通的。您需要手动创建匹配组。只需根据需要(最多)为多个组复制以下内容:
([^:]+)?:?
它很丑,但可能会起作用。
但是,如果您需要完全动态的,那是不可能的。