ユーザーが入力できるいくつかの機能を提供するプログラムを作成しています。function と function を使用して文字列を大文字に変換する関数がある$upper(string)
とします$lower(string)
。ユーザーは、プレースホルダーを使用してコンテンツを挿入しながらテキスト ボックスにそれらを入力できます (たとえば、曲のタイトルの場合は %T)。プレースホルダーと関数の両方を使用して、ユーザーは完全な命名パターンを入力できます。
関数は入れ子にすることができ、最も内側の関数を最初に実行したいと考えています。今、それを識別するための正規表現を探しています。英語で、私は探していますa function (and its value) that does not contain another function.
テスト中、ブラケットの代わりにハイフンを使用し、$ 記号は使用しません。これは非常に読みやすいです。したがって、テスト中の機能はlower-sometext-
.
これまでの私の推測は次のとおりです。
(lower|upper)-(?!((lower|upper)-.*-))-
私は次のように読みました。
upper
またはlower
、という単語を見つけます。- その後にハイフン、
upper
単語またはlower
、ハイフン、ランダムな数のランダムな文字、およびハイフンではないものが続きます- ハイフンが続きます。
しかし、それは受け入れませんlower-sometext-
。2時間以上いろいろ試しているのですが、わかりません...