Вот пример:Регулярное выражение - исключая символ
з = "[email protected]"
s.match (/ + [^ @] * /)
Result => "+ подтекста"
дело в том, что я не хочу, чтобы включить "+" там. Я хочу, чтобы результат «подтекст», без +
Вот пример:Регулярное выражение - исключая символ
з = "[email protected]"
s.match (/ + [^ @] * /)
Result => "+ подтекста"
дело в том, что я не хочу, чтобы включить "+" там. Я хочу, чтобы результат «подтекст», без +
Вы можете использовать скобки в регулярном выражении, чтобы создать матч группы:
s="[email protected]"
s =~ /\+([^@]*)/ && $1
=> "subtext"
Вы можете использовать положительное назад 'утверждение, которое я считаю, написано так:
s.match(/(?<=\+)[^@]*/)
EDIT: Так что я только что заметил, что это вопрос Ruby, и я не знаю, включена ли эта функция в Ruby (я сам не программист Ruby). Если это так, вы можете использовать его; если нет ... Я удалю это.
Это будет работать только в Ruby 1.9+ – mckeed
Я не знаю, Руби очень хорошо, но если вы добавляете захватывая вокруг части, которую Вы хотите, он должен работать. т.е.: \+([^@]*)
Вы можете проверить их с помощью Rubular. Этот конкретный матч здесь: http://www.rubular.com/r/pqFza9jlmX
Это работает для меня:
\+([^@]+)
Мне нравится использовать Rubular для игр с регулярными выражениями. Делает отладку намного проще.
Другим синтаксисом для этого является 's [/ \ + ([^ @] *) /, 1]'. – mckeed
@mckeed, я этого не знал. Очень хорошо! –
спасибо людям! это только для рубина? Кроме того, что означает &&? –