Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式允许A-D加符号和#x27,和括号_Regex - Fatal编程技术网

Regex 正则表达式允许A-D加符号和#x27,和括号

Regex 正则表达式允许A-D加符号和#x27,和括号,regex,Regex,我正在尝试创建一个只接受a-D,加上符号',和括号的正则表达式 例如(A+B+C+D)(A+B)(A') 它们必须都在括号内才能工作,但目前我的正则表达式允许括号外的术语也工作 ^[A-D\(\)\'+]+$ 需要一些帮助谢谢为了确保所有内容都在一对括号内(()),括号不应在字符类内。将它们移到外面,并用重复的非捕获组将其包围,如下所示: ^(?:\([A-D'+]+\)+$ 这仍然允许A-D、加号和单引号以任意顺序出现在括号内。如果您不希望这样,则需要将正则表达式更改为以下内容: ^(?:

我正在尝试创建一个只接受a-D,加上符号',和括号的正则表达式

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

它们必须都在括号内才能工作,但目前我的正则表达式允许括号外的术语也工作

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

需要一些帮助谢谢

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

^(?:\([A-D'+]+\)+$
这仍然允许A-D、加号和单引号以任意顺序出现在括号内。如果您不希望这样,则需要将正则表达式更改为以下内容:

^(?:\([A-D]+'?(?:\+[A-D]+'?)*\)+$
这将符合以下条件:

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

为了确保所有内容都在一对括号内(
()
),括号不应位于字符类内。将它们移到外面,并用重复的非捕获组将其包围,如下所示:

^(?:\([A-D'+]+\)+$
这仍然允许A-D、加号和单引号以任意顺序出现在括号内。如果您不希望这样,则需要将正则表达式更改为以下内容:

^(?:\([A-D]+'?(?:\+[A-D]+'?)*\)+$
这将符合以下条件:

(A)
(A)
(A+A)
(A'+A)
(A'+A')
这应该可以正常工作:

^(?:\([A-D]'?(?:\+[A-D]'?)*\))+$
请访问以试用一个工作演示。

这应该可以正常工作:

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

请访问以试用有效的演示。

您的正则表达式很好。不过,您不需要转义字符,
^[A-D()'+]+$
就足够了。进一步证明您的正则表达式没有问题:并且您不需要转义字符:试试您的正则表达式没有问题。不过,您不需要转义字符,
^[A-D()'+]+$
就足够了。进一步证明您的正则表达式没有问题:并且您不需要转义字符:试试看