Я пытаюсь создать регулярное выражение, которое соответствует внутренней стороне обратной кавычки, 1 или 3.
У меня есть следующее регулярное выражение, которое работает для 1 обратной кавычки:
`(.*?)`
и этот работает с 3:
```(.*?)```
Я хочу объединить их в один поиск по регулярному выражению, я пробовал что-то вроде
(`|```)(.*?)(`|```)
Но это создает слишком много групп совпадений, я пробовал $
и ^
, но это похоже на начало строки и конец строки ...
Пограничный случай 1:
My SQL Statement is below:
```
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 1";
```
должна иметь 1 группу с:
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 1";
Пограничный случай 2
My SQL Statement is below:
```
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 1";
```
```
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 2";
```
Должно быть 2 группы:
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 1";
а также
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 2";
Пограничный случай 3
My SQL Statement is below:
```
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 1";
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 2";
```
Должна быть 1 группа:
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 1";
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 2";
Следует поместить весь блок в группу
Крайний случай 4
SQL_STATEMENT = "SELECT * FROM `table` WHERE `id` = 1";
Должно быть 2 группы
table
а также
id
(?<!`)```(?!`)(.+?)(?<!`)```(?!`)
(с установленным флагом однострочного режима/s
) для пограничного случая, но это не работает для других ваших примеров. Демо. - person Cary Swoveland   schedule 01.05.2020(?<!`)```(?!`)(.+?)(?<!`)(?=```(?!`))```|(?<!`)`(?!`)(.+?)(?<!`)(?=`(?!`))
работает со всеми четырьмя крайними случаями, а также с другими демонстрацией. Мне пришлось сначала показать крайние случаи по ссылке, потому что они не подходят для моих примеров несоответствий. Например, если бы у меня было`ab``
до того, как крайние случаи`ab`
завершились неудачно, тогда он сопоставлял бы второй обратный апостроф и поглощал символы, включая символы новой строки и тройные обратные кавычки, пока не нашел бы одиночный обратный апостроф, который был бы посередине вашего первого края. кейс... - person Cary Swoveland   schedule 01.05.2020