Я пытаюсь написать регулярное выражение, которое возвращает строку между скобками. Например: я хочу получить строку, которая находится между строками "(" и ")"
I expect five hundred dollars ($500).
вернется
$500
Найдено регулярное выражение, чтобы получить строку между двумя строками в Javascript
Но я новичок в регулярных выражениях. Я не знаю, как использовать '(', ')' в регулярном выражении
javascript
regex
string
Okky
источник
источник
var regExp = /\(\$([^)]+)\)/;
Ответы:
Вам необходимо создать набор экранированных (с
\
) круглых скобок (соответствующих скобкам) и группу регулярных круглых скобок, которые создают вашу группу захвата:Сломать:
\(
: соответствовать открывающим скобкам(
: начать захват группы[^)]+
: соответствовать одному или нескольким не)
символам)
: группа захвата конца\)
: закрывающие скобкиВот визуальное объяснение RegExplained
источник
/g
флага не будет работать, как ожидалось.Попробуйте манипуляции со строками:
или регулярное выражение ( что несколько медленнее по сравнению с вышеупомянутым )
источник
Портировал ответ Mr_Green на функциональный стиль программирования, чтобы избежать использования временных глобальных переменных.
источник
Простое решение
Примечание : это решение может быть использовано для строк, имеющих в этом вопросе только одну «(» и «)» строку.
Демо онлайн (jsfiddle)
источник
Только для цифр после знака валюты:
\(.+\s*\d+\s*\)
должно работатьИли
\(.+\)
для чего-нибудь в скобкахисточник
)
позже в строке появится другой, например,I expect five hundred dollars ($500). (but I'm going to pay).
жадность,+
будет захватывать гораздо больше.($500)
и(but I'm going to pay)
быть сопоставленным, но в двух отдельных матчах, а не считаться одним сопоставленным элементом? Заранее спасибо!Чтобы сопоставить подстроку в скобках, исключая любые внутренние скобки, которые вы можете использовать
шаблон. Смотрите на регулярное выражение демо .
В JavaScript используйте его как
Детали шаблона
\(
-(
символ([^()]*)
- Захват группы 1: отрицательный класс символов, соответствующий любому 0 или более символам, кроме(
и)
\)
-)
символЧтобы получить полное совпадение, возьмите значение группы 0, если вам нужен текст в скобках, возьмите значение группы 1.
Самая современная демонстрация кода JavaScript (с использованием
matchAll
):Устаревшая демонстрация кода JavaScript (совместимая с ES5):
Показать фрагмент кода
источник
()
и их содержимое, даже если они находятся рядом()()
.matchAll
демонстрационную версию кода JavaScript.источник
Альтернатива:
При необходимости можно заменить квадратные или фигурные скобки.
источник
Соответствует первому числу, начинающемуся с символа $, за которым следует ')'. ')' не будет частью матча. Код предупреждает с первым совпадением.
Этот код оповещает обо всех совпадениях.
Ссылки:
поиск "? = n" http://www.w3schools.com/jsref/jsref_obj_regexp.asp
поиск "x (? = y)" https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp
источник