Описание функции
RemoveNonWordChars
Удаляет из строки все символы не слова (удаляет \W на языке регвыр).
RemoveNonWordChars(*c.Character)
Параметры
*c.Character | Указатель на строку, одновременно являющийся структурой "Character" |
Примечания
Как любая другая функция посимвольной обработки имеет возможность перенастроить функцию используя другие условия для определения символов.См. также
IsLatinПример
; https://www.purebasic.fr/english/viewtopic.php?p=604873#p604873
EnableExplicit
Procedure RemoveNonWordChars(*c.Character)
Protected *c2.Character
If *c = 0 Or *c\c = 0
ProcedureReturn 0
EndIf
*c2 = *c
While *c\c
Select *c\c
Case '0' To '9', 'a' To 'z', 'A' To 'Z', '_'
If *c2 <> *c
*c2\c = *c\c
EndIf
*c2 + SizeOf(Character)
EndSelect
*c + SizeOf(Character)
Wend
If *c <> *c2
*c2\c = 0
; ProcedureReturn 1 ; line changed
EndIf
EndProcedure
Define MyStr$
MyStr$ = ",!wt=-()ty3456!#$%&"
RemoveNonWordChars(@MyStr$)
Debug "|" + MyStr$ + "|"
MyStr$ = "abc123ABC_"
RemoveNonWordChars(@MyStr$)
Debug "|" + MyStr$ + "|"
MyStr$ = ""
RemoveNonWordChars(@MyStr$)
Debug "|" + MyStr$ + "|"
MyStr$ = "!@#$%*(){}[]"
RemoveNonWordChars(@MyStr$)
Debug "|" + MyStr$ + "|"
MyStr$ = "1234qwer"
RemoveNonWordChars(@MyStr$)
Debug "|" + MyStr$ + "|"