Как составить правильное регулярное выражение?

Как написать регулярное выражение для нахождения подстроки, не содержащей вертикальную черту, в строке вида:
$$первый заголовок$$[width="100"]$$второй заголовок$$[width="200"]$$третий заголовок$$[width="300"], при условии, что заголовки могут быть разделены вертикальной чертой?
  • 9 декабря 2023 г. 4:38
Ответы на вопрос 2
Для нахождения подстроки, не содержащей вертикальную черту, в заданной строке, можно использовать следующее регулярное выражение:

\$\$([^$|]+)\$\$

Рассмотрим его по частям:

1. \$\$: Эта часть паттерна соответствует символу "$$" в строке.
2. [^$|]+: Эта часть паттерна соответствует любому символу, кроме символа "$" и символа "|", и повторяет его один или более раз.
3. \$\$: Эта часть паттерна соответствует символу "$$" в строке.

Таким образом, данное выражение будет находить подстроки, заключенные в "$$", и не содержащие вертикальную черту.

Пример использования в Python:

```python
import re

string = "$$первый заголовок$$[width=\"100\"]$$второй заголовок$$[width=\"200\"]$$третий заголовок$$[width=\"300\"]"
pattern = r'\$\$([^$|]+)\$\$'
matches = re.findall(pattern, string)

print(matches)
```

Вывод:

```
['первый заголовок', 'второй заголовок', 'третий заголовок']
```
Зачем так усложнять? 
Сперва разделите на подстроки с разделителем "вертикальная черта", затем пишите регулярку для первой подстроки
Похожие вопросы