Мне нужно сделать что-то вроде этого < < «Некоторый текст в двоичном формате» >>, и он должен вернуться < < «Некоторые»>. Как я могу сделать это без функции split, только путем сопоставления шаблонов и выбора/if случаев с Erlang. Спасибо.Первое слово бинарной строки erlang
ответ
Хотя Attic «s approach правильно, есть простое решение (в том числе обрезка ведущих пробелов):
first_word_bin(Bin) ->
first_word_bin(ltrim(Bin), <<>>).
first_word_bin(<<>>, Acc) -> Acc;
first_word_bin(<<$\s, _/binary>>, Acc) -> Acc;
first_word_bin(<<X, Bin/binary>>, Acc) ->
first_word_bin(Bin, <<Acc/binary, X>>).
ltrim(<<$\s, Bin/binary>>) -> ltrim(Bin);
ltrim(Bin) -> Bin.
Да, это намного лучше – Attic
Не знаете, почему вы не хотели бы использовать двоичный код: split. Вот one метод достижения этого, но мне это не очень нравится.
first_word_bin(Bin) ->
Len = length_till_space(Bin, 0),
<<Bin:Len/binary>>.
length_till_space(<<>>, Num) -> Num;
length_till_space(<<$\s, _/binary>>, Num) -> Num;
length_till_space(<<_:1/binary, Tl/binary>>, Num) ->
length_till_space(Tl, Num + 1).
Однако, если двоичный код имеет пробел в начале, например.
< < "Некоторый текст в двоичный" >>
тогда результат будет < < >>, без места на старте будет < < "Некоторые" >>. Это можно устранить, предварительно обрезая начальные пробелы, но вы можете использовать тот же метод.
Поэтому мы используем length_till_space, чтобы получить количество символов, пока оно не достигнет пробела. Первый случай проверяет, является ли двоичный код пустым, второй регистр проверяет, является ли глава двоичного файла $ \ s (пробелом), а последний случай просто выполняет вызов хвоста и увеличивает число.
Затем, наконец, мы просто получаем первое количество символов из двоичного кода и возвращаем его.
- 1. Получите первое слово строки?
- 2. Получить первое слово строки
- 3. Первое слово из каждой строки
- 4. cin отсутствует первое слово строки
- 5. Получить первое слово каждой строки
- 6. Удалить первое слово каждой строки
- 7. Сохраните первое слово строки Python?
- 8. Erlang как проверить первое значение командной строки?
- 9. Как удалить первое слово из строки?
- 10. первое слово совпадающей строки в perl
- 11. Ruby удалить первое слово из строки
- 12. VB.net получить первое слово после указанной строки
- 13. Получить первое слово строки с sed
- 14. Удалить первое слово из строки в Java
- 15. Vim синтаксис выделить первое слово каждой строки
- 16. Match первое слово в начале строки (VIM)
- 17. Java: принимать только первое слово строки
- 18. Как определить первое слово строки в jQuery?
- 19. исключить первое слово из строки в perl
- 20. Получить первое слово матча последней строки
- 21. Как удалить первое слово из строки?
- 22. Удалить первое слово условно
- 23. RE-capizing первое слово
- 24. резки струна первое слово
- 25. cin.getline игнорирует первое слово?
- 26. Стиль первое слово абзаца
- 27. получает первое слово строки и удаления слова из фактической строки
- 28. В нижнем регистре первое слово
- 29. Perl регулярное выражение первое слово
- 30. Loop printing только первое слово
что ваше правило находки? – BlackMamba
@ user2513522, возьмите основу ответа отсюда: http://stackoverflow.com/questions/428124/how-can-i-split-a-binary-in-erlang –