Я нашел код с регулярным выражением, в котором утверждается, что он удаляет текст любых символов, отличных от ASCII. Код написан на Perl и часть кода, которая делает это:
$sentence =~ tr/\000-\011\013-\014\016-\037\041-\055\173-\377//d;
Я хочу понять, как работает это регулярное выражение, и для этого я использовал регулярное выражение . Я обнаружил, что \000
, \011
, \013
, \014
, \016
, \037
, \041
, \055
, \173
, \377
означают отдельные символы как NULL, TAB , VERTICAL TAB ... Но я до сих пор не понимаю, почему символы "-" используются в регулярном выражении. Они действительно означают «символ da sh», как показано в regexr или что-то еще? Действительно ли это регулярное выражение подходит для удаления не-ASCII символов?