Я как бы застрял в очень простом регулярном выражении. Я уже пробовал много чего, но без результата, поэтому я пойду с простым:
Я хочу получить многострочный результат (для замены его позже, но я уже написал эту часть, и он работает хорошо), который должен находиться между символом '#'. здесь образец файла:
# Zulu 9.8.9.8
add method 9.8.9.8 {ssh} {telnet}
add password 9.8.9.8 {jouejoue}
add user 9.8.9.8 {Zekrom}
# Zulu 1.1.1.1
add method 1.1.1.1 {ssh} {telnet}
add password 1.1.1.1 {mypassword}
add user 1.1.1.1 {adminstyle}
# Zulu 2.2.2.2
add method 2.2.2.2 {ssh} {telnet}
add password 2.2.2.2 {diffpassword}
add user 2.2.2.2 {pixyokadi}
Я использовал 's', например '/regex/s', поэтому "\n" будет считаться в '.' голец. Я хотел использовать [^ #], но он отменил вариант 's'. Я не знаю, почему, но при использовании этого:
/#.*#/s
Второй абзац абзаца игнорирует "#" в строке "# Zulu 1.1.1.1", и я не понимаю, почему. Я попытался использовать захват-скобки тоже без успеха. Я использовал для поиска IP с регулярным выражением, но поскольку я даже не могу получить абзац, который хотел, я использовал более простой. Может ли кто-нибудь объяснить это мне?
https://regex101.com/r/tI4hQ7/2
Спасибо за прочтение.
Попробуйте следующее регулярное выражение:
/#[^#]*/g
g
делает глобальный поиск.
Также с [^#]*
вы не будете захватывать следующие вхождения #
- всего остальное, чем знак #
.
Пример:
/(?<=#)[^#]*/g
, исключая знаки октохорпа-хеш-фунта на обоих концах.