как получить соответствующую строку между '(' и '):'? - PullRequest
0 голосов
/ 02 мая 2020

Я попытался выяснить точное слово / строку, совпадающие между '(' и '):', используя шаблон регулярного выражения из приведенной ниже строки. Я подставил регулярное выражение и попробовал. Но двоеточие не сопоставляется с приведенным ниже регулярным выражением. Может ли кто-нибудь помочь мне с этим?

Строка: act (REPORT-001): как найти BS C -01

Шаблон регулярного выражения: ([A-Z|a-z]+[-][0-9]+)

Вывод мне нужен: REPORT-001

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

(, ) содержат специальную семантику (группирование) в регулярном выражении и, следовательно, должны быть экранированы в выражениях соответствия. Есть 3 варианта:

  • с префиксом \
  • с указанием класса символов одного элемента
  • с указанием кодовой точки Unicode (Это зависит от вида регулярного выражения: поддерживается JS, Python, не поддерживается PCRE, Golang (и, возможно, другие))

Применительно к вопросу:

\(([A-Z|a-z]+[-][0-9]+)\):
[(]([A-Z|a-z]+[-][0-9]+)[)]:
\u0028([A-Z|a-z]+[-][0-9]+)\u0029:

Демо (Regex101 .com) доступно здесь .

0 голосов
/ 02 мая 2020

const string = 'act(REPORT-001): how to find BSC-01';
const match = string.match(/\w+\((.*?)\)/)[1];

console.log(match)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...