您好我正在尝试找出以下字母的正则表达式,其中字母表由' a''''''''' 39; d':
' a'''' c'' d'只要' d'永远不会跟着(' d' |' a')和' b'永远不会跟着(' b' |' c')。任何帮助都会很棒!谢谢。
编辑:让我最接近的是(a | b?| c | d?)*但是这并没有考虑到这样一个事实:' d'不能跟着' a'和' b'不能跟着' c'。答案 0 :(得分:4)
将问题分解为其组成部分:
这将是一个简单的表达式:
[abcd]
但是,鉴于对字符d和b的额外限制,这将成为:
[ac]
这可以通过简单的negative lookahead:
来实现d(?![da])
这与前一个字符匹配略有不同:
b(?![bc])
完整的单字符正则表达式因此变为:
[ac]|d(?![da])|b(?![bc])
或者作为完整的表达:
/^([ac]|d(?![da])|b(?![bc]))+$/