正则表达式允许A-D,加上符号,'和括号

时间:2018-04-02 16:08:39

标签: regex

我正在尝试创建一个仅包含A-D,加上符号,'和括号的正则表达式。

例如(A + B + C + D)(A + B)(A')

它们必须全部在括号内才能工作,但目前我的正则表达式允许括号外的术语也可以使用。

^[A-D\(\)\'+]+$

需要一些帮助,谢谢

2 个答案:

答案 0 :(得分:1)

为了确保所有内容都在一对括号(())内,括号不应该在字符类中。将它们移到外面,用一个重复的非捕获组围绕它:

^(?:\([A-D'+]+\))+$

这仍然允许A-D,加号和单引号以括号内的任何顺序出现。如果您不想这样,则需要将正则表达式更改为以下内容:

^(?:\([A-D]+'?(?:\+[A-D]+'?)*\))+$

这将匹配以下内容:

(A)
(A')
(A+A)
(A'+A)
(A'+A')

答案 1 :(得分:1)

这应该可以正常工作:

^(?:\([A-D]'?(?:\+[A-D]'?)*\))+$

访问this link以试用有效的演示。