2013-09-12 3 views
0

У меня есть строка:Удалить символы через пробел перед запятой

stuff.more AS field1, stuff.more AS field2, blah.blah AS field3 

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

field1, field2, field3 

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

+0

** Попробуйте написать что-то сами **, а затем, если он не работает, довести его к нам, чтобы помочь вам в этом. Вы начинаете, мы помогаем. Мы не пишем его для вас. Покажите нам фактический код, который вы пробовали, а затем мы можем вам помочь. Скорее всего, вы получите довольно близко к ответу, если сначала попробуете сами. –

ответ

5
(\w+)(?:,|$) 

Regular expression visualization

Edit live on Debuggex

  • \w является алфавитно-цифровой символ (вы можете заменить это [^ ], если вы хотите какой-либо символ, кроме пробела)
  • + означает один или более символов
  • ?: делает pture группа не захват группа
  • ,|$ означает конец строки является либо , или конец линии

примечание:() означает захват группы

пожалуйста подробнее о regex here и используйте эксперимент debugexx.com.

+0

Благодарим вас за объяснение. Один вопрос, который поможет мне понять, как мне сделать точный обратный? Выберите все, кроме того, что было записано в шаблоне, который вы дали? –

+0

BTW, Debuggex freaking cool –

+0

@JeffreyKramer '(. +?) \ W + (?:, | $)' Так вы бы сделали обратный. Вы должны поместить его в debuggex, чтобы увидеть, как он работает :). – progrenhard

0
/[^ ]+(,|$)/ 

должен это сделать. (,|$) позволяет использовать вашу последнюю запись в строке без запятой.

1

Есть ли способ, что я могу использовать регулярное выражение для извлечения ничего вправо пространства вверх и включая запятую ...

Вы можете сделать это с помощью либо отсутствия захвата группы для ваш , или используйте внешний вид.

([^\s]+)(?=,|$) 

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

(    group and capture to \1: 
[^\s]+   any character except: whitespace (\n, 
        \r, \t, \f, and " ") (1 or more times) 
)     end of \1 
(?=    look ahead to see if there is: 
    ,    a comma ',' 
    |    OR 
    $    before an optional \n, and the end of the string 
)     end of look-ahead 
Смежные вопросы