Пытаясь создать регулярное выражение для строки

У меня есть строка типа Такси:[(h19){h12}], HeavyTruck:[(h19){h12}], в которой я хочу хранить информацию до ":", то есть такси или тяжелому грузовику. кто-нибудь может мне помочь с этим?

3 ответа

Решение

Это захватит одно слово, если оно сопровождается :[ разрешить пробелы до и после :,

[A-Za-z]+(?=\s*:\s*\[)

Вам нужно установить глобальный флаг regex, чтобы захватить все вхождения.

Я думаю, что это поможет вам в вашем случае: (?=\s)*\w+(?=\s*:)

Объяснение:

(? = \ s) * - Выполняет поиск 0 или более пробелов в начале слова, не включая их в выделение.

\ w + - выбирает один или несколько символов слова.

(? = \ s *:) - Выполняет поиск 0 или более пробелов после слова, за которым следует столбец, без включения их в выборку.

Для сопоставления информации в предоставленных вами данных до : ты можешь попробовать [A-Za-z]+(?= ?:) который совпадает с заглавными или строчными буквами один или несколько раз и использует положительный прогноз, чтобы утверждать, что последующее является необязательным пробелом и :,

Если шаблон после двоеточия должен совпадать, вы можете попробовать: [A-Za-z]+(?= ?:\[\(h\d+\){h\d+}])

объяснение

  • Совпадение с одним или несколькими заглавными или строчными буквами [A-Za-z]+
  • Позитивный взгляд (?: который утверждает, что то, что следует
  • Дополнительный пробел ?
  • Является ли двоеточие с рисунком после использования двоеточия \d+ чтобы соответствовать одной или нескольким цифрам (если вы хотите сопоставить действительное время, вы можете обновить его с помощью шаблона, соответствующего вашему формату времени) :\[\(h\d+\){h\d+}]
  • Закройте позитивный взгляд )
Другие вопросы по тегам