>>> import re
>>> re.findall(r'\d+|\D+', '2+24*48/32=10')
['2', '+', '24', '*', '48', '/', '32', '=', '10']
Соответствия последовательные цифры или последовательные нецифры.
Каждое соответствие возвращается как новый элемент в списке.
В зависимости от использования, Вы, возможно, должны изменить регулярное выражение. Такой, как будто необходимо соответствовать числам десятичной точке.
>>> re.findall(r'[0-9\.]+|[^0-9\.]+', '2+24*48/32=10.1')
['2', '+', '24', '*', '48', '/', '32', '=', '10.1']
В D2009 и позже: да, есть. PChar
- это указатель на Char
, который является символом Юникода ( WideChar
). А PAnsiChar
- это указатель на AnsiChar
, который, как следует из названия, является символом ANSI.
EDIT : для версий Delphi до 2009 г. PChar
и PAnsiChar
абсолютно одинаковы. Оба они указывают на персонажа (Анси).
Я обращаю внимание на «В Delphi предыдущий 2007 год» в вашем вопросе, который, как я понимаю, означает «В Delphi 2007 и ранее», поэтому ....
В Delphi 2007 и предыдущие PChar и PANSIChar являются синонимами. Они означают одно и то же - указатель на значение ANSIChar . Char является синонимом ANSIChar в этих версиях.
Однако в Delphi 2009 и позже Char становится синонимом ] WideChar , поэтому PChar становится синонимом PWideChar .
Обратите внимание, что WideChar НЕ символ Unicode - Unicode просто не такой просто. Любое значение WideChar может быть кодовой точкой в BMP (базовой многоязычной плоскости) или может быть одним из суррогатных пар. Это также может быть диакритический знак - например, «диакритический знак», применяемый к непосредственно предшествующей кодовой точке в WideString.
Концепция «символа» в Юникоде нелегко сопоставить с одним значением любого типа.
PChar is a pointer to a "char", whatever that happens to be. In D2009 and later, Char means a UnicodeChar. Before that, Char was an AnsiChar.
The difference is that if you're using D2007 and migrate to a later version, the definition of PChar will change, while the definition of PAnsiChar will not.
Типы символов Delphi 2009 - это Char, AnsiChar и WideChar, где Char по умолчанию имеет значение WideChar. В предыдущих версиях Delphi Char был бы эквивалентен AnsiChar. Буква P указывает указатель на данный тип.
PAnsiChar - это указатель на символ, отличный от Unicode (старый строковый тип), а PChar указывает на новый стиль, unicode char.