Регулярное выражение, которое я написал, обобщает синтаксис уценки между начальным и конечным шаблоном, а не специфично для отдельного выражения / слова - PullRequest
0 голосов
/ 28 января 2019

У меня есть предложение -

"У нее проблемы с дыханием уже много лет. В [\*\*2118-6-4\*\*] она была принята в [\*\*Hospital1 18\*\*] за дыхательную недостаточность из-за рака легких. Из-за постоянного кашля,она была допущена ... [**Hospital1 **]...

Я хотел определить и устранить шаблоны, заключенные между [\*\* и \*\*]

Я написал выражения регулярного выражения, как показано ниже -

\[\*\*\w*\s\*\*\]

Выражение выше идентифицировало образец - [**Hospital1 **]

Я попробовал еще раз и написал ниже-

\[\*\*\w*.*\*\*\]

На этот раз он идентифицировал всю полосу - [\*\*2118-6-4\*\*] she was admitted to [\*\*Hospital1 18\*\*]

Как мне изменить свое регулярное выражение, чтобы оно было очень специфичным для отдельных шаблонов между [\*\*" and "\*\*]

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Для вашего шаблона, RE почти смешно!Попробуйте -

\[\*\*[^*]*\*\*\]

Часть [^*]* в середине обеспечивает захват всего, что не является звездочкой.Это должно работать (почти?) Везде (это Basic RE ).Если вы используете специальный редактор, который поддерживает прогнозные RE, то вы можете настроить его, чтобы искать все, до двух звездочек, за которыми следует ]

0 голосов
/ 28 января 2019

Как насчет /\[\*\*[\s\d\w-]+\*\*\]/g?

Это будет соответствовать нулю или более словам, цифрам, пробелам или дефисам между [** и **].

Это можно увидеть работающимв Regex101 здесь , а в JavaScript ниже:

const string = "She has breathing problems for so many years now. In [**2118-6-4**] she was admitted to [**Hospital1 18**] for respiratory failure due to a lung cancer. Due to persistent coughing, she was admitted... [**Hospital1 **]...";
const regex = /\[\*\*[\w\d\s-]+\*\*\]/g;
console.log(string.match(regex));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...