正则表达式 - 匹配冗余序列
Regex - Match redundant sequences
我想设计一个正则表达式来捕获在较大字符串中至少包含两次的所有字母序列:
例如,让我们采取:
abzabuiabuz => a, b, ab, z, bu, u
我正在考虑先行和后行,但我看不到合适的解决方案。
非常感谢您的帮助!
编辑:
我原来的问题是在eu-a us-b eu-c eu-b us-a us-a
中找到-a
、-b
。
捕获一个或多个字符并对这些捕获的字符进行反向引用,然后将整个模式放入正向先行断言中。
(?=(.+).*)
从组索引 1 中获取重复的字符。
您可以使用 following regex:
\b\S+-(?:a|b)\b
它将匹配字符串中以 -a
或 -b
.
结尾的所有单词
eu-a
us-b
eu-b
us-a
us-a
如果您实际上只需要获取 -a
s 和 -b
s,您可以使用 \b\S+(-(?:a|b))\b
正则表达式并获取第 1 组值。
我想设计一个正则表达式来捕获在较大字符串中至少包含两次的所有字母序列:
例如,让我们采取:
abzabuiabuz => a, b, ab, z, bu, u
我正在考虑先行和后行,但我看不到合适的解决方案。
非常感谢您的帮助!
编辑:
我原来的问题是在eu-a us-b eu-c eu-b us-a us-a
中找到-a
、-b
。
捕获一个或多个字符并对这些捕获的字符进行反向引用,然后将整个模式放入正向先行断言中。
(?=(.+).*)
从组索引 1 中获取重复的字符。
您可以使用 following regex:
\b\S+-(?:a|b)\b
它将匹配字符串中以 -a
或 -b
.
eu-a
us-b
eu-b
us-a
us-a
如果您实际上只需要获取 -a
s 和 -b
s,您可以使用 \b\S+(-(?:a|b))\b
正则表达式并获取第 1 组值。