Пожалуйста, объясните вывод замены для регулярных выражений в сценарии Java - PullRequest
0 голосов
/ 27 февраля 2019

Мне трудно понять вывод для следующего использования замены в JavaScript для строк, использующих регулярное выражение.Пожалуйста, объясните значение 'temp', которое будет сохраняться.

{
    var temp='xxxx5678';
    var format='x-$2';
    temp= temp.replace(/(x*)([0-9]+)/, format);
    console.log(temp);
}

Вот еще один пример теста.

{
    var temp='12345678';
    var format='x-$2';
    temp= temp.replace(/(x*)([0-9]+)/, format);
    console.log(temp);
}

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Я переписал код и добавил примечания к Javascript.Было бы более понятно, чтобы узнать Javascript заменить код и Regex.

var str ='xxxx5678';
result = str.replace(/(x*)([0-9]+)/,'x-$2');
console.log(result);

// str.replace('matech text','replace to')
// (x*)([0-9]+) means two groups $1 and $2. Therefor $2 = ([0-9]+).
// x-$2  replace any string matched (x*)([0-9]+) to "x-" and ([0-9]+).
0 голосов
/ 27 февраля 2019
(x*)([0-9]+)
 |    |
 g1   g2
  • (x*) - соответствует x символу ноль или более раз.
  • ([0-9]+) - соответствует цифрам еще раз.

Итак,заменит все любые числа (это также может быть ноль) из x, за которыми следуют цифры, с переменной format ( x-$2 ).

g1 - будет заменено на x.

g2 - будет заменено на любые [0-9]+ совпадения

var temp='xxxx5678';
var format='x-$2';
temp= temp.replace(/(x*)([0-9]+)/, format);
console.log(temp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...