Как разрешить пробелы между словами? - PullRequest
0 голосов
/ 26 января 2019

РЕДАКТИРОВАТЬ: Я экспериментировал, и кажется, что это выглядит так:

\(\w{1,12}\s*\)$

работает, однако, он позволяет только пробел в конце слова.

пример,

Совпадения

(stuff )
(stuff    )

Не

(st uff)

Регулярное выражение:

\(\w{1,12}\)

Это соответствует следующему:

(stuff)

Но не:

(stu ff)

Я тоже хочу иметь возможность сопоставлять пробелы.

Я пытался поставить \s, но это просто сломало все, ничто не соответствовало бы.Я видел один пост здесь, в котором говорилось, что нужно заключить все это в ^[]*$ с пробелом там.Это только заставило регулярное выражение соответствовать всему.

Это для проверки форм Google, если это помогает.Я совершенно новичок в регулярных выражениях, так что будьте спокойныЯ посмотрел на мою проблему, но не смог найти ничего, что работало бы с моим регулярным выражением.(Это из-за скобок?)

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Для сопоставления текста типа (st uff) или (st uff some more) вам нужно написать свое регулярное выражение следующим образом:

\(\w{1,12}(?:\s+\w{1,12})*\)

Regex объяснение:

  • \( - Буквально начальная скобка
  • \w{1,12} - Подберите слово длиной от 1 до 12, как вы хотели
  • (?:\s+\w{1,12})* - вам нужен этот шаблон, чтобы он мог соответствовать одному или нескольким пробелам, за которыми следуют слова длиной от 1 до 12 и весь этот шаблон для повторения ноль или более раз
  • \) - Буквально закрывающая скобка

Демо

Теперь, если вы хотите также разрешить пробелы сразу после начала скобок и окончания скобок, вы можете просто поместить \s* в регулярное выражение следующим образом:

\(\s*\w{1,12}(?:\s+\w{1,12})*\s*\)
  ^^^                        ^^^

Демонстрация с дополнительными пробелами

0 голосов
/ 26 января 2019

Если вы пытаетесь получить 12 символов в скобках:

\([^\)]{1,12}\)

Сегмент [^\)] - это класс символов, представляющий все символы, которые не закрывают скобки (^ инвертирует класс).

Если вы хотите, чтобы некоторые конкретные символы, такие как алфавитно-цифровые и пробелы, сгруппировали их в класс символов:

\([\w ]{1,12}\)

Или

\([\w\s]{1,12}\)

Если вы хотите 12символы слова с произвольным числом пробелов где-либо между:

\(\s*(?:\w\s*){1,12}\)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...