あなたが求めているのは、実際には正規表現のプロパティではありません。
"親密度"を測定する列挙型を作成し、与えられた正規表現と親密度を保持するクラスを作成します。これは、正規表現が他の正規表現と「近い」とみなされるかどうかを判断する必要があります。
さまざまなクラスをインスタンス化し、それらのコードを緩和させ、一致したオブジェクトを比較して、「最も近いもの」を上に上げます。
擬似コード、実際には何を比較するか、まともな言語に似ているなし:
enum Closeness
Exact
PrettyClose
Decent
NotSoClose
WayOff
CouldBeAnything
mune
class RegexCloser
property Closeness Close()
property String Regex()
ssalc
var foo = new RegexCloser(Closeness := Exact, Regex := "foobar")
var bar = new RegexCloser(Closeness := CouldBeAnything, Regex := ".*")
var target = "foobar";
if Regex.Match(target, foo)
print String.Format("foo {0}", foo.Closeness)
fi
if Regex.Match(target, bar)
print String.Format("bar {0}", bar.Closeness)
fi
理解するためにはもっとコーヒーが必要ですが、デグには最も有望な方法のようです。ありがとうございました。 – jekamax