В последний раз, когда я проверял, они существенно отличались поддержкой Unicode. Ruby в 1.9, по крайней мере, имеет очень ограниченную поддержку Unicode. Я считаю, что одно или два свойства Unicode могут быть поддержаны в настоящее время. Вероятно, общие категории и, возможно, сценарии были двумя, о которых я думаю.
В Python все больше и больше поддерживается Unicode. Кажется, Python позволяет удовлетворить требования RL1.2a "Свойства совместимости" из UTS # 18 для Регулярные выражения Unicode .
Тем не менее, есть очень хорошая библиотека Python от Matthew Barnett (mrab), которая наконец добавляет пару свойств Unicode в регулярные выражения Python. Он поддерживает две наиболее важные из них: общие категории и свойства скрипта. У него есть и другие интригующие особенности. Это заслуживает хорошей рекламы.
Я не думаю, что ни Ruby, ни Python не поддерживают Unicode все это так хорошо, хотя с каждым днем все больше и больше делается. В частности, однако, ни то, ни другое не отвечает даже требованиям уровня 1 для регулярных выражений Unicode, приведенным выше. Например, RL1.2 требует поддержки как минимум 11 свойств: General_Category, Script, Alphabetic, Uppercase, Lowercase, White_Space, Noncharacter_Code_Point, Default_Ignorable_Code_Point, ANY, ASCII,
и ASSIGNED
.
Я думаю, что Python позволяет вам только некоторые из них, и только окольным путем. Конечно, есть много, много других свойств, помимо этих 11.
Когда вы ищете поддержку Юникода, конечно, в регулярных выражениях есть нечто большее, чем просто UTS # 10, хотя именно этот вопрос наиболее важен для этого вопроса, и ни Ruby, ни Puython не соответствуют уровню 1. Другими очень важными аспектами Unicode являются UAX # 15, UAX # 14, UTS # 18, UAX # 11, UAX # 29 и, конечно, решающий UAX # 44. Я знаю, что в Python есть библиотеки как минимум для пары из них. Я не знаю, что они стандартные.
Но когда дело доходит до поддержки регулярных выражений ... 1019 * есть более богатых альтернатив, чем эти два, вы знаете. :)