Соответствие управляющих символов Юникода, за исключением трех, с регулярными выражениями
Мне нужно получить регулярное выражение, которое соответствует всем управляющим символам Юникода, за исключением возврата каретки (0x0d), перевода строки (0x0a) и табулятора (0x09). В настоящее время мое регулярное выражение выглядит так:
/\p{C}/u
Мне просто нужно определить эти три исключения сейчас.
1 ответ
Я думаю, что вы можете использовать отрицательный взгляд здесь, в сочетании с классами персонажей.
/(?![\x{000d}\x{000a}\x{0009}])\p{C}/u
Для этого нужно использовать отрицательный взгляд, чтобы утверждать, что символ не является одним из тех, которые указаны в классе символов. Затем он пересекает персонажа снова, чтобы сопоставить его с любым управляющим персонажем.
Я использовал синтаксис perl для определения отдельных точек Unicode.
Более подробное обсуждение здесь
(Обратите внимание, что это не было проверено, но я думаю, что концепция верна.)