メソッドへの呼び出しを分割する正規表現を見つけようとしています
boo(a,b), c
だからそれは戻るだろう
boo(a,b)
と
c
それによって分割した後。正規表現でそれを行うことは可能ですか?ありがとう。
正規言語は再帰を表現できません。ソリューションに再帰が含まれることに気付いた時点で、これを「純粋な」正規表現エンジンで表現することはできません(実際には、ほとんどの正規表現エンジンには、このルールの違反を制限するための何らかの拡張機能があります)。
Javaコンテキストで記述しているので、正規表現をソリューションに組み込むのではなく、優れたプログラミング言語を使用して、この非常に単純な文字列の操作を実行してみませんか?:)
私はあなたの質問に関してあなたが本当に何を望んでいるのかわかりませんが、与えられたケースでは:
"boo(a,b), c".split("(?<=\\)),") //look for a ',' preceeded by ')'
を含む配列を提供します["boo(a,b)","c"]
。
編集 :
この場合:boo(a(a、b)、b)、c、use:
"boo(a(a,b),b),c".split("(?<=\\)),(?!(\\w\\p{Punct}?)+\\))")
(?!(\\w\\p{Punct}?)+\\))
(単語と1つまたはゼロの句読点)がn回続き、右括弧が続く場合は、一致を受け入れないことを意味します。
結果は、を含む配列です["boo(a(a,b),b)","c"]
。