Регулярное выражение с иностранными языками
-
22-09-2019 - |
Вопрос
У меня есть функция, которую я использовал кучу раз в различных файлах, которая имеет подпись типа:
Translate("English Message", "Spanish Message", "French Message")
и я хочу извлечь сообщения на английском, испанском и французском языках, а затем вывести их в формате CSV, чтобы люди, которые действительно знают эти языки, могли сказать мне, что я ДОЛЖЕН был туда поместить.
В любом случае, я столкнулся с тем, что некоторые сообщения на французском и испанском языках не отображаются из-за символов с ударением и одинарных кавычек.
Это программа vb.net.
Редактировать
С языком проблем не было, на самом деле моей проблемой было регулярное выражение и мое полное непонимание регулярных выражений.
Решение
Зависит от используемой вами библиотеки регулярных выражений.Нормальные реализации регулярных выражений используют UTF-8 и не имеют таких проблем, но было бы полезно узнать больше о том, какой язык вы используете, какую библиотеку регулярных выражений и т.д.
Другие советы
Если в реализации регулярных выражений вашего языка есть флаг DOTALL, вы можете захотеть установить его.
В качестве альтернативы измените регулярное выражение, чтобы вместо него отображался отрицаемый символьный класс, например:
([^your_delimiter]*?)
с your_delimiter, являющимся символом (символами), непосредственно следующим за строкой, которую вы хотите захватить.
Смотрите это для дальнейшего обсуждения: