有人可以帮助我在PHP中建立一个正则表达式并解析下面的字符串来实现单个模块。的一些字符串格式正则表达式和解析重复相同的组总是
例子:()=>组
STR1 =(A & & B)|| (C || d)& &!(E || F)
O/P阵列=(组1,||,组2,& &,组3)
STR2 =!(A ||乙)& &(C || d)& &(E & & F)
O/P阵列=(组1,& &,组2,& &,组3)
str3 =!(A || B)
O/P阵列=(组1)
STR4 =(A & & B)
O/P阵列=(组1)
STR5 =(A || B)
O/P阵列=(组1)
STR5 =(A & & B)
O/P阵列=(组1)
总之,这些基团可以是任何顺序或存在用于每个组内的数据没有限制。
组1:(A & &乙& &Ç& & ...... n)的
第2组:(A || ||乙Ç|| ...... n)的
第3组:(A || ||乙ç|| ...... N)
预先感谢。如果需要,我可以发布我现在的东西?
回答哪个起作用了:'/(!?\(.*?\))| \ | \ || & & /”
但它给我用于下面的实施例的错误,其中只有一个基团,其是W/O型括号:
STR1 = A & &乙
O/P排列的1组=(没有括号),其中组1 = & &乙
STR2 = A || B || C
O/P array = group1(no括号)其中group 1 = A || B || C
是的,你应该总是发布你的相关尝试,否则这个问题可能会很快关闭。 – kapa 2013-03-06 21:54:55
通常,正则表达式只能描述[常规语言](http://en.wikipedia.org/wiki/Regular_language)。你的语言不是常规的,而是[context-free](http://en.wikipedia.org/wiki/Context-free_language)。所以你可能需要编写你自己的解析器。 – Gumbo 2013-03-06 22:06:59
嵌套与正则表达式的疯狂(它验证输入,所以它比正常长),只是为了演示它是可能的,但不推荐:http://stackoverflow.com/questions/15233953/php-split-string-on-逗号但不是在大括号或引号之间/ 15235628#15235628 – nhahtdh 2013-03-06 22:51:06