Chapter 9 of Haverbeke's Eloquent Javascript содержит следующий регулярное выражение примера:Как выбрать между действующими регулярными выражениями - пример из красноречивого JavaScript, глава 9
console.log(
"Hopper, Grace\nMcCarthy, John\nRitchie, Dennis"
.replace(/([\w ]+), ([\w ]+)/g, "$2 $1"));
// OUTPUT:
// → Grace Hopper
// John McCarthy
// Dennis Ritchie
Однако, я не знаю, почему он использует квадратные скобки и почему он имеет место после \w
. Следующие регулярные выражения, кажется, производят идентичный результат:
console.log(
"Hopper, Grace\nMcCarthy, John\nRitchie, Dennis"
.replace(/([\w]+), ([\w]+)/g, "$2 $1")); // Spaces removed.
console.log(
"Hopper, Grace\nMcCarthy, John\nRitchie, Dennis"
.replace(/(\w+), (\w+)/g, "$2 $1")); // No brackets or spaces.
JSFiddle HERE
Суммировать
- с точки зрения производительности и передовых методов, существуют ли различия между тремя регулярными выражения, приведенные выше?
- Если да, то какие?
- Если нет, как следует различать их при принятии решений по кодированию?