@vasyagymenuk

Есть ли различие между оступами в строках?

Всем привет! Я только начинаю использовать регулярные выражения и часто сталкиваюсь с различными непонятными вещами.

У меня есть строки с датами(ниже)

(1) `31 мая — 6 июня
какой-то текст
19—25 апреля
`
(2) `26 апреля — 2 мая
какой-то текст
24—30 мая
`
Написал вот такое регулярное выражение :
/\d{0,2}—\d{0,2}\s[а-я]+\n|\d{0,2}\s[а-я]+\s—\s\d{0,2}\s[а-я]+\n/gm


Использую string.matchAll()

Все отлично оно работает и находит все что мне необходимо, кроме первой даты в строке (1) (31 мая — 6 июня)

Долго не мог понять почему. Зашел на сайт regex101.
Вот ссылка на мою регулярку

6058427875fdd587923678.png

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

Что с этим делать? Как заменить эти магические отступы на обычные пробелы?
Заранее спасибо. Это мой первый вопрос))
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@cheeroque
Скорее всего, это неразрывный пробел, который nbsp; По крайней мере, по правилам типографики именно он должен стоять после числа и перед тире. Попробуйте к \s добавить \u00A0
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
да, для таких языков как PHP или Bash это без разницы,
но вот С или Python = тебя сразу пошлют куда подальше )))
сам недавно столкнулся с этим,
не мог закомпилить пару строк,
оказалось при копипасте кода, мой редактор вставил вместо табов пробелы
ps
я бы этого никогда и не понял,
знающие люди мне подсказали сразу/быстро(здесь на тостере).
когда открыл код в Hex редакторе = сразу увидел разницу
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы