我想匹配受^.*||
或||.*||
或||.*$
限制的字符串的每个部分,并包含文字Alpha。
例如:
BetaAlpha||Omega||AlphaBeta||Alpha||Omega
现在我有这样的事情:
(?<=\|\||^)(((?!((?<=\|\||^)*Alpha(\|\||$)*)).)*)(?=$|\|\|)
http://rubular.com/r/yLwFDllJaf
它匹配除"Alpha"
的部分以外的所有内容。我想扭转它,但无法弄明白。
此字符串中的其他值可能是动态的,只有部分字符串出现在每个字符串中(但随机组合)。
答案 0 :(得分:0)
此正则表达式与您通过rubular
(?<=\|\||^)[^|\s]*Alpha[^|\s]*(?=\|\||$)
答案 1 :(得分:0)
答案 2 :(得分:0)
如果输入不能包含单个“|” (例如“Alpha | Beta || Gamma || Delta”与“Alpha | Beta”是有效匹配),之前的答案都可以。
如果输入CAN包含单个“|”,那么这应该可行(在.NET和rubular中测试):
(?<=\||^)(?!\|)((?!\|\|).)*Alpha((?!\|\|).)*
使用“BetaAlpha || Omega || Alpha | Beta || Alpha || Omega || TestAlpha”进行测试
输出:
“BetaAlpha”,“Alpha | Beta”,“Alpha”,“TestAlpha”
编辑:删除不必要的括号并在rubular中进行测试。