Пытаясь создать регулярное выражение для строки
У меня есть строка типа Такси:[(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+}]
- Закройте позитивный взгляд
)