Спеціально до пам'яті тут, б Regex.Match()
і new Regex().Match()
мати різницю?
Не створивши нове твердження класу Regex, варто придбати більше пам'яті, ніж використовувати Regex.Match
?
Причина, про яку я питаю, - це я завжди робив new Regex("pattern").Match("Input")
і побачив Regex.Match, і я зараз запитую, чи я це робив неправильно!
Відповіді:
0 для відповіді № 1З цим точним синтаксисом, для вас, як розробника, різниці немає. окрім цього new Regex()
не є громадським конструктором, ви повинні пройти шаблон.
Тож у такому випадку статичні, напевно, краще.
Де ти б ти new Regex()
є, призначити його екземпляру регулярного виразу, як:
var myregex = new Regex("my pattern");
Потім ви можете перевірити речі на прикладі, наприклад тайм-аут MatchTimeout
і Options
.
0 для відповіді № 2
Ви праві. Статичний метод Regex.Match добре для ситуацій, коли вам не потрібно повторно використовувати об'єкт Regex. Якщо ви збираєтеся відповідати кільком входам, ви, швидше за все, захочете використовувати
Regex reggy = new Regex("pattern");
І тоді використовуйте цей об'єкт стільки разів, скільки це потрібно.