^(part1|part2)$
这只返回正确的答案1和2,而答案3将是错误的。我现在想知道是否有一个类似于|的操作符,它说and/or而不是either...or。
and/or
either...or
谁能帮我解决这个问题?
不是正则表达式的专家,但你可以做^((part1|part2)|(part1, part2))$。换言之:“第一部分或第二部分,或两者都有”
^((part1|part2)|(part1, part2))$
'^(part1|part2|part1,part2)$'
这有用吗?
或者你可以用这个:
^(?:part[12]|(part)1,\12)$
我假设您想动态地构建一个正则表达式来包含part1和part2以外的单词,并且您希望顺序无关紧要。如果是这样,你可以使用这样的东西:
((^|, )(part1|part2|part3))+$
积极的比赛:
part1 part2, part1 part1, part2, part3
消极比赛:
part1, //with and without trailing spaces. part3, part2, otherpart1
这种方法没有交替就能奏效吗?
^((part)1(, \22)?)?(part2)?$
或者为什么不是这个?
^((part)1(, (\22))?)?(\4)?$
第一个适用于所有条件,第二个适用于除part2以外的所有条件(使用GNU sed 4.1.5)
part2
使用 如果在vim中:
:s/{\|}/"/g
将取代{and}上的" 所以{lol}变成"lol"