один фактор, о котором я могу думать, это то, является ли язык бесконечным или не бесконечным. «Не бесконечное» определенно более актуально, чем «Бесконечное», поскольку в языке имеется конечное число приемлемых слов.
если вы измеряете бесконечные языки, как ваши примеры, оба будут продолжаться вечно, и вы можете продолжать считать каждое слово в языке, пока не посинете, вы никогда не придете к выводу.
пока вы не сочтете, что язык первого регулярного выражения является надлежащим подмножеством языка второго. Тогда вы можете сказать, что один из них более подходящий.
Я не уверен ни в одном стандарте, как измерить релевантность регулярных выражений.
Чтобы изложить идею правильных подмножеств, вы можете спросить, на каком языке вы говорите, и принимает ли ваше регулярное выражение слова вне этого? Ваше выражение может все еще работать, но оно содержит более широкий диапазон слов, чем вы предполагали ... конечно, это может не иметь значения, если ваш ввод контролируется, но это один из способов измерения релевантности. принимает ли он мой язык точно ?
ваш хороший пример, возможно, вы хотите принять числа, начинающиеся с 1234. 1234.*
работает как шарм ... но это не тот язык, который вы указали. `1234 \ d * более конкретен и соответствует вашему языку в точности так, как вы указали ... таким образом, он более актуален.
но это все с чисто теоретической точки зрения и, вероятно, не поможет вам программно определить, является ли одно регулярное выражение лучше другого.