Что не так с моим регулярным выражением (просто)? - PullRequest
1 голос
/ 18 августа 2010

Я пытаюсь создать регулярное выражение, которое соответствует всем вхождениям слов, которые находятся в начале строки и начинаются с #.

Например, в:

#region #like
#hey

Это будетmatch #region и # hey.

Это то, что у меня есть сейчас:

^#\w*

Я прошу прощения за размещение этого вопроса.Я уверен, что у него очень простой ответ, но я не смог его найти.Я признаю, что я регулярное выражение noob.

Ответы [ 3 ]

5 голосов
/ 18 августа 2010

То, что у вас есть, должно работать, в зависимости от того, какие флаги вы передаете для RegexOptions .Вы должны убедиться, что вы передаете RegexOptions.Multiline:

var matches = Regex.Matches(input, @"^#\w*", RegexOptions.Multiline);

См. Документацию, на которую я ссылался выше:

Многострочный Многострочный режим.Изменяет значения ^ и $, чтобы они соответствовали началу и концу, соответственно, любой строки, а не только началу и концу всей строки.

1 голос
/ 18 августа 2010

Регулярное выражение выглядит хорошо, убедитесь, что вы используете дословный строковый литерал (префикс @) для определения своего регулярного выражения, т.е. @"^#\w*", в противном случае обратный слеш будет рассматриваться как escape-последовательность.

0 голосов
/ 18 августа 2010

Используйте это регулярное выражение

^#.+?\b

.+ обеспечит, по крайней мере, один символ после #, а \b означает ограничение слова. ? добавляет нежадность к оператору +, чтобы избежать совпадения всей строки #region #like

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