我正在尝试创建一个仅包含A-D,加上符号,'和括号的正则表达式。
例如(A + B + C + D)(A + B)(A')
它们必须全部在括号内才能工作,但目前我的正则表达式允许括号外的术语也可以使用。
^[A-D\(\)\'+]+$
需要一些帮助,谢谢
答案 0 :(得分:1)
为了确保所有内容都在一对括号(()
)内,括号不应该在字符类中。将它们移到外面,用一个重复的非捕获组围绕它:
^(?:\([A-D'+]+\))+$
这仍然允许A-D,加号和单引号以括号内的任何顺序出现。如果您不想这样,则需要将正则表达式更改为以下内容:
^(?:\([A-D]+'?(?:\+[A-D]+'?)*\))+$
这将匹配以下内容:
(A)
(A')
(A+A)
(A'+A)
(A'+A')
答案 1 :(得分:1)