- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
begin
# Это пиздец
artist_title = row.title.split(/ - /)
if artist_title.length > 1
row.artist = artist_title[0]
row.title = artist_title[1]
else
artist_title = row.title.split(/ — /)
if artist_title.length > 1
row.artist = artist_title[0]
row.title = artist_title[1]
else
artist_title = row.title.split(/ - /)
if artist_title.length > 1
row.artist = artist_title[0]
row.title = artist_title[1]
else
artist_title = row.title.split(/ – /)
if artist_title.length > 1
row.artist = artist_title[0]
row.title = artist_title[1]
else
artist = row.title.match(/\((.*?)\)/)
artist = artist.captures[0]
# puts artist_title
# puts row.title
# puts artist
row.artist = artist
row.title = row.title.gsub('('+artist+')', '').strip
end
end
end
end
rescue
next
end
Lokich 21.07.2015 21:22 # +2
3_14dar 21.07.2015 21:28 # −20
inkanus-gray 21.07.2015 22:11 # 0
Что поступает на вход в 8-й строке и чем оно отличается от 3-й строки?
3_14dar 21.07.2015 22:18 # −30
inkanus-gray 21.07.2015 22:26 # +2
3_14dar 22.07.2015 00:20 # −33
inkanus-gray 22.07.2015 00:22 # −1
3_14dar 22.07.2015 00:23 # −34
3_14dar 22.07.2015 21:22 # −26
inkanus-gray 22.07.2015 22:48 # −1
Причём не факт, что именно по списку символов. Тут, как оказалось, не только тире, но и пробелы могут быть разными. Как бы не пришлось тут городить что-то сложное...
Patriarkh_Kirill 22.07.2015 22:49 # −1
"... С блудниками да не общайтесь"
inkanus-gray 22.07.2015 22:56 # 0
Patriarkh_Kirill 22.07.2015 22:58 # 0
inkanus-gray 22.07.2015 23:06 # +3
Боюсь, что на 3_14дара этот запрет не распространяется, ибо считает он, что никогда мы не будем братьями.
Patriarkh_Kirill 22.07.2015 23:09 # 0
kegdan 22.07.2015 15:02 # +1
Да, я немного опоздал)
bormand 22.07.2015 14:34 # +4
Блин, ну лучше бы скрытым постам въебали по 28 плюсов, чем тратить ботов на разжигание сёминой жопы...
Dummy00001 21.07.2015 23:54 # +5
при тесте доки, долго возмущалисть что "bash ––version" не работает почему то.
inkanus-gray 22.07.2015 00:02 # +2
Но в любом случае цикл не нужен, раз уж мы используем регулярки. Все варианты тире можно проверить одним выражением.
Dummy00001 22.07.2015 14:27 # +1
Я глубого этой темой на редактировании ебуков проникся: удаляешь тире по всей книге, редактор говорит что удалил тыщи раз, открываешь книгу - а она все еще полна тире. Как выяснилось, в юникоде есть пачка тире/дефисов/прочее, и когда чистишь книгу это может обернуться серьёзным гемороем. Вот тогда то я и научился распозновать эти юникодные какашки.
Большинство из символов выглядят почти одинаково, но есть один из них - тире, строка #18 сверху - который длинее все остальных, и он "касается" краев баундинг бокса символа. Его легко распознать если этот символ выделить: становится видно что он касается краев.
roman-kashitsyn 22.07.2015 14:43 # +1
Выхлоп для строк с тире следующий: Первый регекс отличается от третьего использованием , у второго и четвёртого кодпоинты отличаются на единицу.
roman-kashitsyn 22.07.2015 14:46 # +1
Dummy00001 22.07.2015 15:29 # +1
но в юникоде их есть еще больше:
http://www.fileformat.info/info/unicode/category/Pd/list.htm
Dummy00001 22.07.2015 15:33 # +1
в юникоде подобных есть тоже пачка - http://www.fileformat.info/info/unicode/category/Zs/list.htm - но к счастью я только на 0xA0 натыкался.
Desktop 23.08.2023 18:25 # 0
guest6 23.08.2023 18:37 # 0
ropuJIJIa 24.08.2023 00:06 # 0
Почему-то у вебмакак соблюсти баланс escape/unescape не получается.
guest6 24.08.2023 17:12 # 0
3_14dar 22.07.2015 21:17 # −24
inkanus-gray 22.07.2015 22:45 # +1
Юникод непоследователен. Его создатели так и не определились, что соответствует коду: семантическое значение символа или его графический вид. Так появилось несколько символов, которые графически идентичны, но имеют разную семантику, и несколько символов, у которых назначение одинаковое, но несколько графических форм.
Но данный ГК даже не об этом. С создателем списка произведений, как я понял, нет обратной связи, поэтому договориться о формате, который бы однозначно парсился, невозможно. Приходится глотать кашу из разных разделителей.
Dummy00001 23.07.2015 01:24 # +1
гемор с кодировками - это долгосрочно, постоянно и без остановки.
3_14dar 23.07.2015 01:29 # 0
inkanus-gray 23.07.2015 11:48 # +4
Lokich 22.07.2015 12:12 # 0
roman-kashitsyn 22.07.2015 12:16 # +1
Lokich 22.07.2015 14:28 # 0
в любом случае, это можно было в цикле сделать, по всем вариациям сделать, а не 100500 if else писать.
да даже если и так, если там встретится еще один дефис, то можно неплохо так говном наестся
inkanus-gray 22.07.2015 14:56 # 0
Lokich 22.07.2015 15:13 # 0
inkanus-gray 22.07.2015 15:19 # +1
Андерс Т. — Болен Д. — Ты — моё сердце, ты — моя душа.
Lokich 22.07.2015 16:08 # +1
inkanus-gray 22.07.2015 16:14 # 0
kegdan 22.07.2015 17:00 # +1
Vasiliy 22.07.2015 18:00 # +3
Lokich 22.07.2015 18:23 # +1
хотя, может я фантазирую, и в яндекс-музыку все заносится руками, но если бы была вероятность профакапиться в том, как алгоритм ее распарсит, я бы посадил людей, которые будут либо аппрувить это, либо руками вносить правки