Обрезать название до 50 символов и др.

Andr123

Client
Joined
Jan 8, 2016
Messages
79
Reaction score
12
Points
8
Можно такое как-то реализовать? Есть название "Автомобильное кресло Miramax детское мягкое и прикольное." Обрезается до 50 символов. Удаляется точка или запятая если они в конце, получается "Автомобильное кресло Miramax детское мягкое и прик" Идет проверка есть ли обрезка последнего слова, если есть обрезка, последнее слово не берется. Получается "Автомобильное кресло Miramax детское мягкое и" Идет проверка последнее слово больше 2х символов, если да, то ОК, если нет, последнее слово не берется. Итог: Автомобильное кресло Miramax детское мягкое
 

blud

Client
Joined
Apr 19, 2011
Messages
657
Reaction score
77
Points
28
Можно такое как-то реализовать? Есть название "Автомобильное кресло Miramax детское мягкое и прикольное." Обрезается до 50 символов. Удаляется точка или запятая если они в конце, получается "Автомобильное кресло Miramax детское мягкое и прик" Идет проверка есть ли обрезка последнего слова, если есть обрезка, последнее слово не берется. Получается "Автомобильное кресло Miramax детское мягкое и" Идет проверка последнее слово больше 2х символов, если да, то ОК, если нет, последнее слово не берется. Итог: Автомобильное кресло Miramax детское мягкое
[\w\W]{1,ваше количество символов}(?=\ )
 
  • Thank you
Reactions: bedl0 and Andr123

blud

Client
Joined
Apr 19, 2011
Messages
657
Reaction score
77
Points
28
[\w\W]{1,ваше количество символов}(?=\ )
даа... совсем забыл.. если количество символов в исходном тексте будет меньше, чем необходимо при обрезании, то переменная будет пустая... поэтому после регекспа, проверяйте переменную
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,133
Points
113
  • Thank you
Reactions: Andr123

Andr123

Client
Joined
Jan 8, 2016
Messages
79
Reaction score
12
Points
8
[\w\W]{1,ваше количество символов}(?=\ )
Обрезает но И оставляет, вот так получается: Автомобильное кресло Miramax детское мягкое и
 

blud

Client
Joined
Apr 19, 2011
Messages
657
Reaction score
77
Points
28
Обрезает но И оставляет, вот так получается: Автомобильное кресло Miramax детское мягкое и
мдаа ... действительно ... соорри
 

Andr123

Client
Joined
Jan 8, 2016
Messages
79
Reaction score
12
Points
8
Регулярка [\w\W]{1,ваше количество символов}(?=\ ) в принципе хорошо работает. Можно еще дополнительно другими регулярками убрать точку или запятую в конце, а потом убрать любое слово меньше двух символов? Попробовал варианты, что выше по ссылке, но не получается.
 

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,652
Points
113

Andr123

Client
Joined
Jan 8, 2016
Messages
79
Reaction score
12
Points
8
^.{,40}\w{3,}
Не получается :( Пустая переменная становится, разные варианты попробовал
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,133
Points
113
Code:
^.{0,40}\w{3,}
 
  • Thank you
Reactions: Andr123 and blud

Andr123

Client
Joined
Jan 8, 2016
Messages
79
Reaction score
12
Points
8
Огромное спасибо! Все работает. Единственный момент, если легко исправить можно еще чтобы скобка в конце не обрезалась? Т.е, например, если название Автомобильное кресло Miramax детское (мягкое) и прикольное, то обрезается как Автомобильное кресло Miramax детское (мягкое
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,133
Points
113
Code:
^.{0,40}([\d\)]{1,}|[A-Za-zА-Яа-я\)]{3,})
+ добавил, чтоб не обрезались цифры, на случай, если будет что-то вроде: Самая лучшая программа - ZennoPoster 5
 
Last edited:
  • Thank you
Reactions: Andr123

Andr123

Client
Joined
Jan 8, 2016
Messages
79
Reaction score
12
Points
8
Code:
^.{0,40}([A-Za-zА-Яа-я]{3,}|\d|\))
+ добавил, чтоб не обрезались цифры, на случай, если будет что-то вроде: Самая лучшая программа - ZennoPoster 5
все равно удаляется скобка в конце :(
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,133
Points
113
  • Thank you
Reactions: Andr123

Andr123

Client
Joined
Jan 8, 2016
Messages
79
Reaction score
12
Points
8
Да, все отлично :ay:Спасибо!
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)