2017-02-13 11 views
1

Приведем пример:регулярное выражение соответствует, когда вся линия является правильным

Go and drink in the FooBar 
It's a very nicö place 
John Skeet is the bartender 

Моя цель состоит в том, чтобы выбрать всю строку, только если ВСЕ CHAR соответствует регулярному выражению. Здесь, например, я хочу выбрать только строки без umlaut: [a-zA-Z\ \']+

Теперь я нашел способ выбрать целую строку с ^$, но с этим я не был очень успешным в regex101.

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

+0

В чем проблема? Посмотрите [здесь] (https://regex101.com/r/eBbeCb/1). –

+0

@ WiktorStribiżew иногда я чувствую себя глупее, чем когда-либо ожидал. – SovietPanda

+0

Вы должны просто указать многострочный флаг. Тем не менее, лучший способ - просто прочитать файл по строкам, вы просто будете использовать '/^[a-zA-Z '] + $ /'. –

ответ

0

В случае, если у вас есть строка многострочного, и вы хотите, чтобы соответствовать действующие линии, вам нужно приложить шаблон с ^ и $ якорей, и пересмотреть свое поведение, добавив многострочный модификатор:

/^[a-zA-Z ']+$/m 

или

/^[a-z ']+$/im 

Если вы обрабатываете файл, вы можете читать файл строки за строкой и избегать многострочного модификатора.

 Смежные вопросы

  • Нет связанных вопросов^_^