Использование регулярного выражения для захвата всего, что находится между двумя звездочками - PullRequest
1 голос
/ 09 июля 2020

Я экспортирую несколько задач из JIRA, и, как и SO, они используют звездочки для форматирования. Я хочу сохранить это форматирование при включении в текстовый документ, однако в некоторых случаях звездочки вызывают у меня проблемы. В настоящее время у меня есть регулярное выражение, которое позволяет получить текст между двумя звездочками:

(\*.+?\*)

Это регулярное выражение будет соответствовать значительному набору элементов, на которые я смотрю:

*This is a bolded sentence*. This is not. *This is again.*

Соответствие:

Это предложение выделено жирным шрифтом Это снова

Однако, когда я хочу проверить следующее предложение:

*Set the dropdown to (*.docx) and click 'Save'*. Do the next thing.

Оно будет соответствовать только:

Установите в раскрывающемся списке значение (

Есть ли способ сопоставления на основе следующего? Например, если есть звездочка период и пробел или способ указать, избегая буквы периода звездочки, тогда это будет соответствовать:

Установите раскрывающийся список на (* .docx) и нажмите «Сохранить»

Я попытался изменить текущее регулярное выражение, которое у меня есть, но не могу найти что-то, что работает. Даже при использовании отрицательных наборов [^*.] и отрицательного упреждения (?!\*\.).

1 Ответ

1 голос
/ 09 июля 2020

Вы можете использовать это регулярное выражение с отрицательным просмотром вперед после закрытия *, чтобы не выполнить сопоставление, когда у нас есть точка и непробельный символ после *:

\*.*?\*(?!\.\S)

RegEx Demo

  • (?!\.\S) - отрицательный просмотр вперед для подтверждения отказа, когда сразу после закрытия стоит точка, за которой следует непробельный символ *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...