Помогите сделать регулярку

sanchessam

Client
Joined
Oct 13, 2016
Messages
72
Reaction score
4
Points
8
вот из этого

card-meta-row-item text-truncate overflow-hidden card-shop-name">
............................SnappysBoutique
.................................</div>


надо достать
SnappysBoutique

Вместо точек - пробелы! В сообщение пробелы не вставлялись.

Видимо из-за пробелов не могу достать, как с ними справиться подскажите.
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,130
Points
113
Code:
(?s)(?<=card-shop-name"\>\s+?).*?(?=<)
 
  • Thank you
Reactions: sanchessam

sanchessam

Client
Joined
Oct 13, 2016
Messages
72
Reaction score
4
Points
8

sanchessam

Client
Joined
Oct 13, 2016
Messages
72
Reaction score
4
Points
8

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,130
Points
113

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,648
Points
113
Code:
(?s)(?<=card-shop-name"\>\s+?).*?(?=<)
не знаю, почему, но подобные записи s+? из условия корректно не отрабатывают.
Code:
(?s)(?<=card-shop-name"\>\s+)[^\s].*?[^\s](?=\s+<)
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,130
Points
113
не знаю, почему, но подобные записи s+? из условия корректно не отрабатывают.
Тоже замечал, просто в исходном тексте из первого поста табов не было.
Можно и без модификатора
Code:
(?<=card-shop-name"\>\s+?)[^\s].*[^\s](?=\s+?<)
 

ZennoScript

Moderator
Joined
Mar 4, 2011
Messages
4,452
Reaction score
1,888
Points
113
не знаю, почему, но подобные записи s+? из условия корректно не отрабатывают.
Code:
(?s)(?<=card-shop-name"\>\s+)[^\s].*?[^\s](?=\s+<)
У меня всегда работало, просто ставлею не +, а *
А за условием \S
Code:
(?<=card-shop-name"\>\s*?)\S.*?\S(?=\s*?<)
 

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,648
Points
113
У меня всегда работало, просто ставлею не +, а *
А за условием \S
Code:
(?<=card-shop-name"\>\s*?)\S.*?\S(?=\s*?<)
ну да, \S идентично [^\s]
Но я о том, что, например, запись \s+ должна искать максимальное вхождение. Но если она используется в условии, например в регуулярке на эту тему
(?<=card-shop-name">\s+)[\w\W]*?(?=<)
то здесь уже она найдёт всего 1 пробел, а остальное отдаст нашей записи [\w\W]*?
но, если будет регулярка, например, групповая
(card-shop-name"\>\s+)([\w\W]*?)(?=<)
то \s+ отработает на максимум

Я к этому привык уже, но это сбивает с толку всё равно порой
 

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