У меня есть строки вроде следующим образом:Non жадный LookAhead
val:key
я могу захватить 'Вэл' с /^\w*/
.
Как я могу получить «ключ» без знак ':'?
Thanks
У меня есть строки вроде следующим образом:Non жадный LookAhead
val:key
я могу захватить 'Вэл' с /^\w*/
.
Как я могу получить «ключ» без знак ':'?
Thanks
Как насчет этого?
/^(\w+):(\w+)$/
Или если вы просто хотите, чтобы захватить все, что после двоеточия:
/:(.+)/
Вот менее наглядный пример использования такого выражения для обеспечения двоеточие произошло перед матчем - весь матч не будет включать в себя это двоеточие.
/(?<=:).*/
Я бы хотел записать его с другим регулярным выражением и /\:(.*)/, все еще захватывая ':' – pistacchio
, но круглые скобки будут разрешить выгрузку –
/\:(\w*)/
Это выглядит как: а затем захватывает все символы слова после него до конца строки
Какой язык вы используете? /:(.*)/ не захват от ":" но это делает матч символ ':'
В Perl, если вы говорите:
$text =~ /\:(.*)/;
$capture = $1;
$match = $&;
Тогда $ захват выиграл» t имеют совпадения «:» и «$». (Но старайтесь избегать использования $ &, поскольку он замедляет работу Perl: это было просто для иллюстрации соответствия).
Это захватит ключ в группе 1 и значение в группе 2. Он должен работать корректно, даже если значение вызывает символ двоеточия (:).
^(\w+?):(.*)
В зависимости от используемого языка должна быть какая-то команда split() для разделения строк. Просто разделите «:», затем получите последний элемент. Нет необходимости в регулярном выражении. – ghostdog74
Мне не хватает простейшего решения! Кстати, ключ может содержать ':'. – pistacchio
Значит, вы хотите, чтобы он разделился на первый двоеточие? Используйте ограничение на фрагмент: 'split (/: /, $ text, 2)' –