2015-09-24 4 views
0

Как получить доступ к строке соответствующей группы в скрипте приложений Google? Следующий код возвращает всю строку, а не только текст соответствующей группы.Как получить доступ к содержимому группы RegExp?

(/([\d\.]+)]]/).exec("abcdefg 123.45]]")[0]

возвращает 123.45]]

Я хочу вернуться 123.45, не 123.45]], что это то, что приведенный выше код возвращается.

+0

Затем используйте недвусмысленные шаблоны регулярных выражений. '/ ([\ d.] +) \] \] /' и получить доступ к значению группы 1. Обратите внимание, что буквальная нотация предпочтительнее, так как вам не нужно удваивать специальные символы регулярного выражения. –

+0

Попробуйте '(/([\d\.]+)]]/).exec("abcdefg 123.45]]") [1] ', так как там будет зафиксировано число. Или просто используйте 'str.match (/ \ d + (?: \. \ D +)? (? = \] {2})/g)', который вернет все найденные поплавки, найденные до 2 ']' или 'null' если не найдено. –

+0

Да, вы ответили дважды :) Вы понимаете разницу между 'match' и' exec'? Добавить ответ? Обратите внимание, что ваше регулярное выражение также будет соответствовать '.12 .... 112 ..]]', не знаю, если вы хотите подытожить такие подстроки. –

ответ

1

Первый элемент массива функции exec в возвращаемом значении - это полное совпадение. Вы должны получить доступ ко второму элементу:

(/([\d\.]+)]]/).exec("abcdefg 123.45]]")[1]

См JavaScript reference:

результат [0] Полная строка совпавших символов

[1], ... [п] Подстрока в скобках совпадает, если таковая имеется. Номер возможных подстрок в скобках неограничен.

Смежные вопросы