Регулярное выражение, которое включает косую черту и звездочку в качестве константы - PullRequest
0 голосов
/ 04 июля 2018

Я использую Golang и пытаюсь определить, какое регулярное выражение будет работать для соответствия любой строке, начинающейся с:

/*

Было трудно получить его, я пробовал много способов (я не спас их всех, чтобы написать их здесь), но некоторые из них:

{/*}.*?
//*.*?
//\\*[A-Za-z0-9_-]*$

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Если вы хотите сопоставить весь исходный текст, регулярное выражение должно начинаться с ^ и заканчиваются $ (якоря).

Для соответствия / используйте просто /. На некоторых других языках хоста (например, Javascript или Perl) косые черты используются как разделители регулярных выражений, поэтому использовать косую черту в качестве содержимого в regex вы должны были бы избежать его с обратной косой чертой, но в go это не нужно.

Для соответствия * используйте \*. Вы не можете использовать только * (как предложено Volker ), потому что это квантификатор , что означает 0 или более .

Как вы хотите сопоставить всю строку (а не только /*), следующая часть должно быть .* (любое количество любых символов).

Если вы хотите поймать «остаток» строки в группе захвата, окружите эта часть с круглыми скобками.

И последний шаг усложнения: обычно после /* есть пробелы и только после них фрагмент, который вы действительно хотите поймать. В таком случае:

  • начать с \s* (необязательная последовательность белых символов),
  • затем положить (.*).

Итак, окончательное решение: ^/\*\s*(.*)$

Рабочий пример см. https://regex101.com/r/80ORab/1

Редактировать

Если вы пишете свое регулярное выражение в виде строки, в двойных кавычках, обратный слеш должно быть написано дважды.

0 голосов
/ 04 июля 2018

Вам нужно выйти из * с обратной косой чертой: ^/\*. Однако, если вы используете обычные кавычки, вам также нужно экранировать саму обратную косую черту:

"^/\\*"

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

`^/\*`

Ссылка на игровую площадку: https://play.golang.org/p/v5y9l8dTXRs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...