LibreOffice 25.8 Help
De service String service heeft een aantal methodes voor het werken met tekenreeksen. Deze methodes kunnen gebruikt worden om:
De inhoud van tekenreeksen te valideren
De tekenreeks verbeteren door het verwijderen van spaties, het uitvullen of teruglopen van tekst
Met reguliere expressies naar teksten zoeken en die vervangen
Hash algoritmes toepassen, enz.
De service String herkent de volgende regeleinden:
| Symbolische naam | ASCII-code | 
|---|---|
|              Line feed | 
             10  | 
De service String herkent de volgende witruimtes:
| Symbolische naam | ASCII-code | 
|---|---|
|              Spatie | 
             32  | 
De volgende escape-reeksen kunnen in tekenreeksen worden gebruikt:
| Escape-reeks | Symbolische naam | ASCII-code | 
|---|---|---|
| 
             \n  |              Line feed | 
             10  | 
Om de escape-reeks "\n" als deel van een tekenreeks te gebruiken, gebruik "\\n" en niet "\" & Chr(10).
Niet-afdrukbare tekens zijn bijvoorbeeld de in de Unicode Character Database gedefinieerde “Other” en “Separator”.
Controletekens (ASCII-code <= 0x1F) worden ook als niet-afdrukbaar beschouwd.
Om een aanhalingsteken in een tekenreeks te gebruiken, gebruik een \' (enkel aanhalingsteken) of \" (dubbel aanhalingsteken). Voorbeeld:
De tekenreeks [str\'i\'ng] wordt geïnterpreteerd als [str'i'ng]
De tekenreeks [str\"'i\"ng] wordt geïnterpreteerd als [str"i"ng]
Voordat de service ScriptForge.String gebruikt kan worden moet de ScriptForge bibliotheek worden geladen met:
      GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
  Door het laden van de bibliotheek wordt een object SF_String aangemaakt dat gebruikt kan worden voor het aanroepen van de methodes van de service String.
De volgende stukjes code tonen manieren om de methodes in de service String aan te roepen (de methode Capitalize dient als voorbeeld):
    Dim s as String : s = "abc def"
    s = SF_String.Capitalize(s) ' Abc Def
  
    Dim s as String : s = "abc def"
    Dim svc : svc = SF_String
    s = svc.Capitalize(s) ' Abc Def
  
    Dim s as String : s = "abc def"
    Dim svc : svc = CreateScriptService("String")
    s = svc.Capitalize(s) ' Abc Def
  Het volgende stukje code toont aan hoe u in Python-scripts de methodes in de service String aan kunt roepen (de methode IsIPv4 dient als voorbeeld):
    from scriptforge import CreateScriptService
    svc = CreateScriptService("String")
    ip_address = '192.168.0.14'
    svc.IsIPv4(ip_address) # True
  Het object SF_String heeft de volgende eigenschappen:
| Naam | AlleenLezen | Beschrijving | 
|---|---|---|
| sfCR | Ja | Carriage return: Chr(13) | 
| sfCRLF | Ja | Carriage return + Linefeed: Chr(13) + Chr(10) | 
| sfLF | Ja | Line feed: Chr(10) | 
| sfNEWLINE | Ja | Carriage return + Line feed, kan zijn  | 
| sfTAB | Ja | Horizontale tabulatie: Chr(9) | 
U kunt deze eigenschappen gebruiken om de overeenkomende tekens te herkennen of te vervangen in tekenreeksen. Voorbeeld, de Line feed kan vervangen worden door SF_String.sfLF.
Het eerste argument van de meeste methodes is de tekenreeks. Deze wordt altijd bij referentie doorgegeven en wordt niet gewijzigd. Als de tekenreeks wordt gewijzigd dan wordt er een nieuwe tekenreeks geretourneerd, voorbeelden zijn de methodes Capitalize en Escape.
Omdat Python al een uitgebreide ondersteuning biedt voor het werken met tekenreeksen, zijn de meeste methodes in de service String alleen beschikbaar voor Basic-scripts. Voor beide beschikbaar zijn: HashStr, IsADate, IsEmail, IsFileName, IsIBAN, IsIPv4, IsLike, IsSheetName, IsUrl, SplitNotQuoted en Wrap.
Maakt van elke eerste letter van elk woord in de tekenreeks een hoofdletter.
svc.Capitalize(inputstr: str): str
inputstr: De tekenreeks die gewijzigd moet worden.
    Dim sName as String : sName = "john smith"
    Dim sCapitalizedName as String
    sCapitalizedName = SF_String.Capitalize(sName)
    MsgBox sCapitalizedName 'John Smith
  Telt het aantal keren dat een deel van een tekenreeks of een reguliere expressie voorkomt in de tekenreeks.
svc.Count(inputstr: str, substring: str, [isregex: bool], [casesensitive: bool]): int
inputstr: De tekenreeks waarin gezocht moet worden.
substring: De tekenreeks of reguliere expressie waarnaar gezocht moet worden
isregex: Gebruik True als de tekenreeks waarnaar gezocht moet worden een reguliere expressie is (Standaard = False)
Hoofdlettergevoelig : Het zoeken kan hoofdlettergevoelig zijn (standaardwaarde is False).
    'Telt het aantal keren dat "or" voorkomt in de tekenreeks (uitkomst 2)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "or", CaseSensitive := False)
    'Telt het aantal woorden met alleen kleine letters (uitkomst 7)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", IsRegex := True, CaseSensitive := True)
  Raadpleeg de Python documentatie voor meer informatie over reguliere expressies.
Retourneert True als de tekenreeks eindigt met een bepaalde tekenreeks.
De functie retourneert False als een van beide tekenreeksen leeg is of wanneer ''substring'' langer is dan ''inputstr''.
svc.EndsWith(inputstr: str, substring: str, [casesensitive: bool]): bool
inputstr: De te testen tekenreeks.
substring: De tekenreeks waarnaar gezocht moet worden, of die aan het einde van de inputstr staat.
Hoofdlettergevoelig : Het zoeken kan hoofdlettergevoelig zijn (standaardwaarde is False).
    'Retourneert True omdat de methode is aangeroepen met de standaardwaarde False voor de hoofdlettergevoeligheid
    MsgBox SF_String.EndsWith("abcdefg", "EFG")
    'Retourneert False vanwege de parameter voor de hoofdlettergevoeligheid
    MsgBox SF_String.EndsWith("abcdefg", "EFG", CaseSensitive := True)
  Converteert regeleinden en tabs in een invoertekenreeks naar de overeenkomende escape-reeks (\\, \n, \r, \t).
svc.Escape(inputstr: str): str
inputstr: De te wijzigen tekenreeks.
    'Retourneert de tekenreeks "abc\n\tdef\\n"
    MsgBox SF_String.Escape("abc" & Chr(10) & Chr(9) & "def\n")
  Vervangt de Tab-tekens Chr(9) door spaties om het gedrag van tab-stops te kopiëren.
Als er een regeleinde is gevonden, beginnen op een nieuwe regel en de teller resetten.
svc.ExpandTabs(inputstr: str, [tabsize: int]): str
inputstr: De uit te breiden tekenreeks.
tabsize: Deze parameter wordt gebruikt om het aantal Tab-stops te bepalen met de formule: TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (Standaard = 8)
    Dim myText as String
    myText = "100" & SF_String.sfTAB & "200" & SF_String.sfTAB & "300" & SF_String.sfNEWLINE & _
             "X"  & SF_String.sfTAB & "Y" & SF_String.sfTAB & "Z"
    MsgBox SF_String.ExpandTabs(myText)
    '100     200     300
    'X       Y       Z
  Vervangt alle niet-afdrukbare tekens in de invoer door een bepaald teken.
svc.FilterNotPrintable(inputstr: str, [replacedby: str]): str
inputstr: De te doorzoeken tekenreeks.
replacedby: Nul, een of meer tekens die alle niet-afdrukbare tekens gaan vervangen in de inputstr (Standaard = "")
    Dim LF : LF = Chr(10)
    Dim myText as String
    myText = "àén ΣlPµ" & LF & " Русский" & "\n"
    MsgBox SF_String.FilterNotPrintable(myText)
    ' "àén ΣlPµ Русский\n"
  Vindt in een tekenreeks een tekenreeks die overeenkomt met een bepaalde reguliere expressie.
svc.FindRegex(inputstr: str, regex: str, [start: int], [casesensitive: bool], [forward: bool]): str
inputstr: De te doorzoeken tekenreeks
regex: De reguliere expressie
start: De positie in de tekenreeks waar het zoeken moet beginnen. Deze parameter wordt bij referentie doorgegeven, na uitvoering bevat start de positie van het eerste teken van de gevonden tekenreeks. Indien er geen tekenreeks gevonden wordt, is de waarde van start na uitvoering 0.
Hoofdlettergevoelig : Het zoeken kan hoofdlettergevoelig zijn. (standaardwaarde is False).
forward: Geeft de richting van het zoeken aan. True betekent dat van voren naar achteren wordt gezocht. False betekent dat van achteren naar voren wordt gezocht (Standaard is True)
Bij de eerste keer uitvoering, als forward = True, dan zou start 1 moeten zijn, als forward = False dan zou start gelijk moeten zijn aan Len(inputstr)
    Dim lStart As Long : lStart = 1
    Dim result as String
    result = SF_String.FindRegex("abCcdefghHij", "C.*H", lStart, CaseSensitive := True)
    MsgBox lStart & ": " & result
    '3: CcdefghH
  In bovenstaand voorbeeld, de nieuwe waarde van lStart kan worden gebruikt om verder te zoeken op dezelfde tekenreeks in dezelfde tekenreeks door de waarde van Start parameter te verhogen met Len(result). Dit om geen overlappende tekenreeks te vinden.
Hash-functies worden gebruikt in sommige cryptografische algoritmen, in digitale handtekeningen, berichtauthenticatiecodes, manipulatiedetectie, vingerafdrukken, checksums (berichtintegriteitscontrole), hashtabellen, wachtwoordopslag en nog veel meer.
De methode HashStr retourneert het resultaat van een hash-functie die is toegepast op een gegeven tekenreeks en met een gespecificeerd algoritme, als een tekenreeks van kleine hexadecimale cijfers.
De ondersteunde hash-algoritmen zijn: MD5, SHA1, SHA224, SHA256, SHA384 en SHA512.
svc.HashStr(inputstr: str, algorithm: str): str
inputstr: De tekenreeks om te hashen. Het wordt verondersteld te zijn gecodeerd in UTF-8. Het hash-algoritme beschouwt de tekenreeks als een stroom van bytes.
algorithm: Een van de hierboven vermelde ondersteunde algoritmen, doorgegeven als een tekenreeks.
    MsgBox SF_String.HashStr("œ∑¡™£¢∞§¶•ªº–≠œ∑´®†¥¨ˆøπ‘åß∂ƒ©˙∆˚¬", "MD5")
    ' c740ccc2e201df4b2e2b4aa086f35d8a
  
    svc = CreateScriptService("String")
    bas = CreateScriptService("Basic")
    a_string = "œ∑¡™£¢∞§¶•ªº–≠œ∑´®†¥¨ˆøπ‘åß∂ƒ©˙∆˚¬"
    hash_value = svc.HashStr(a_string, "MD5")
    bas.MsgBox(hash_value)
    # c740ccc2e201df4b2e2b4aa086f35d8a
  Codeert de invoerreeks in de HTML-tekencodes, waarbij speciale tekens worden vervangen door hun &-tegenhangers.
Het teken é zou bijvoorbeeld worden vervangen door é of een gelijkwaardige numerieke HTML-code.
svc.HtmlEncode(inputstr: str): str
inputstr: De te coderen tekenreeks.
    MsgBox SF_String.HtmlEncode("<a href=""https://a.b.com"">From α to ω</a>")
    ' "<a href="https://a.b.com">From α to ω</a>"
  Retourneert True als de invoertekenreeks een geldige datum is volgens een opgegeven datumnotatie.
svc.IsADate(inputstr: str, [dateformat: str]): bool
inputstr: De tekenreeks die moet worden gecontroleerd. Indien leeg, retourneert de methode False
dateformat: De datumnotatie, als tekenreeks. Dit kan "YYYY-MM-DD" (standaard), "DD-MM-YYYY" of "MM-DD-YYYY" zijn
Het streepje (-) mag worden vervangen door een punt (.), een schuine streep (/) of een spatie.
Als het opmaak ongeldig is, retourneert de methode False.
    MsgBox SF_String.IsADate("2020-12-31", "YYYY-MM-DD") ' True
  Deze methode controleert het formaat van de invoertekenreeks zonder kalenderspecifieke controles uit te voeren. Daarom test het de invoerreeks niet voor schrikkeljaren of maanden met 30 of 31 dagen. Raadpleeg daarvoor de ingebouwde functie IsDate.
Het onderstaande voorbeeld toont het verschil tussen de methodes IsADate (ScriptForge) en de functie IsDate (ingebouwd).
    Dim myDate as String : myDate = "2020-02-30"
    MsgBox SF_String.IsADate(myDate, "YYYY-MM-DD") 'True
    MsgBox IsDate(myDate) ' False
  
    svc = CreateScriptService("String")
    s_date = "2020-12-31"
    result = svc.IsADate(s_date) # True
  Retourneert True als alle tekens in de tekenreeks alfabetisch zijn.
Alfabetische tekens zijn de tekens die zijn gedefinieerd in de Unicode Character Database als Letter.
svc.IsAlpha(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsAlpha("àénΣlPµ") ' True
    MsgBox SF_String.IsAlpha("myVar3") ' False
  Retourneert True als alle tekens in de tekenreeks alfabetisch zijn, cijfers of "_" (underscore). Het eerste teken mag geen cijfer zijn.
svc.IsAlphaNum(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsAlphaNum("_ABC_123456_abcàénΣlPµ") ' True
    MsgBox SF_String.IsAlphaNum("123ABC") ' False
  Retourneert True als alle tekens in de tekenreeks ASCII-tekens zijn.
svc.IsAscii(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsAscii("a%?,25") ' True
    MsgBox SF_String.IsAscii("abcàénΣlPµ") ' False
  Retourneert True als alle tekens in de tekenreeks cijfers zijn.
svc.IsDigit(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsDigit("123456") ' True
    MsgBox SF_String.IsDigit("_12a") ' False
  Retourneert True als de tekenreeks een geldig e-mailadres is.
svc.IsEmail(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsEmail("first.last@something.org") ' True
    MsgBox SF_String.IsEmail("first.last@something.com.br") ' True
    MsgBox SF_String.IsEmail("first.last@something.123") ' False
  
    svc = CreateScriptService("String")
    bas = CreateScriptService("Basic")
    bas.MsgBox(svc.IsEmail("first.last@something.org")) # True
    bas.MsgBox(svc.IsEmail("first.last@something.com.br")) # True
    bas.MsgBox(svc.IsEmail("first.last@something.123")) # False
  Retourneert True als de tekenreeks een geldige bestandsnaam is in een bepaald besturingssysteem.
svc.IsFileName(inputstr: str, [osname: str]): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
osname: De naam van het besturingssysteem, als een tekenreeks. Dit kan "WINDOWS", "LINUX", "MACOSX" of "SOLARIS" zijn.
De standaardwaarde is het huidige besturingssysteem waarop het script wordt uitgevoerd.
    MsgBox SF_String.IsFileName("/home/user/Documents/a file name.odt", "LINUX") ' True
    MsgBox SF_String.IsFileName("C:\home\a file name.odt", "LINUX") ' False
    MsgBox SF_String.IsFileName("C:\home\a file name.odt", "WINDOWS") ' True
  
    svc = CreateScriptService("String")
    bas = CreateScriptService("Basic")
    bas.MsgBox(svc.IsFileName("/home/user/Documents/a file name.odt", "LINUX")) # True
    bas.MsgBox(svc.IsFileName(r"C:\home\a file name.odt", "LINUX")) # False
    bas.MsgBox(svc.IsFileName(r"C:\home\a file name.odt", "WINDOWS")) # True
  Retourneert True als alle tekens in de tekenreeks hexadecimale cijfers zijn.
svc.IsHexDigit(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
De hexadecimale cijfers kunnen worden voorafgegaan door "0x" of "&H".
    MsgBox SF_String.IsHexDigit("&H00FF") ' True
    MsgBox SF_String.IsHexDigit("08AAFF10") ' True
    MsgBox SF_String.IsHexDigit("0x18LA22") ' False
  Retourneert True als de tekenreeks een geldig internationaal bankrekeningnummer (IBAN) is. De vergelijking is niet hoofdlettergevoelig.
svc.IsIBAN(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
True als de tekenreeks een geldig IBAN-nummer bevat.
    ' Basic
    MsgBox SF_String.IsIBAN("BR15 0000 0000 0000 1093 2840 814 P2") ' True
  
    # Python
    result = svc.IsIBAN("BR15 0000 0000 0000 1093 2840 814 P2") # True
  Retourneert True als de tekenreeks een geldig IP(v4)-adres is.
svc.IsIPv4(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsIPv4("192.168.1.50") ' True
    MsgBox SF_String.IsIPv4("192.168.50") ' False
    MsgBox SF_String.IsIPv4("255.255.255.256") ' False
  
    svc = CreateScriptService("String")
    bas = CreateScriptService("Basic")
    bas.MsgBox(svc.IsIPv4("192.168.1.50")) # True
    bas.MsgBox(svc.IsIPv4("192.168.50")) # False
    bas.MsgBox(svc.IsIPv4("255.255.255.256")) # False
  Retourneert True als de hele invoertekenreeks overeenkomt met een bepaald patroon dat jokertekens bevat.
svc.IsLike(inputstr: str, pattern: str, [casesensitive: bool]): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
pattern: Het patroon als een tekenreeks. Jokertekens zijn:
"?" staat voor één willekeurig teken
"*" staat voor geen, één of meer tekens
Hoofdlettergevoelig : Het zoeken kan hoofdlettergevoelig zijn. (standaardwaarde is False).
    MsgBox SF_String.IsLike("aAbB", "?A*") ' True
    MsgBox SF_String.IsLike("C:\a\b\c\f.odb", "?:*.*") ' True
    MsgBox SF_String.IsLike("name:host", "?*@?*") ' False
    MsgBox SF_String.IsLike("@host", "?*@?*") ' False
  
    svc = CreateScriptService("String")
    bas = CreateScriptService("Basic")
    bas.MsgBox(svc.IsLike("aAbB", "?A*")) # True
    bas.MsgBox(svc.IsLike(r"C:\a\b\c\f.odb", "?:*.*")) # True
    bas.MsgBox(svc.IsLike("name:host", "?*@?*")) # False
    bas.MsgBox(svc.IsLike("@host", "?*@?*")) # False
  Retourneert True als alle alfabetische tekens in de tekenreeks kleine letters zijn.
svc.IsLower(inputstr: str): bool
InputStr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsLower("abc'(-xy4z") ' True
    MsgBox SF_String.IsLower("1234") ' True
    MsgBox SF_String.IsLower("abcDefg") ' False
  Retourneert True als alle tekens in de tekenreeks afdrukbaar zijn.
svc.IsPrintable(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsPrintable("àén ΣlPµ Русский") ' True
    MsgBox SF_String.IsPrintable("First line." & Chr(10) & "Second Line.") ' False
  Retourneert True als de hele invoertekenreeks overeenkomt met een bepaalde reguliere expressie.
svc.IsRegex(inputstr: str, regex: str, [casesensitive: bool]): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
regex: De reguliere expressie. Indien leeg, retourneert de methode False.
Hoofdlettergevoelig : Het zoeken kan hoofdlettergevoelig zijn. (standaardwaarde is False).
        MsgBox SF_String.IsRegex("aAbB", "[A-Za-z]+") ' True
        MsgBox SF_String.IsRegex("John;100", "[A-Za-z]+;[0-9]+") ' True
        MsgBox SF_String.IsRegex("John;100;150", "[A-Za-z]+;[0-9]+") ' False
      Retourneert True als de invoertekenreeks een geldige Calc-bladnaam is.
svc.IsSheetName(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsSheetName("1àbc + ""déf""") ' True
    MsgBox SF_String.IsSheetName("[MySheet]") ' False
  
    svc = CreateScriptService("String")
    bas = CreateScriptService("Basic")
    bas.MsgBox(svc.IsSheetName("1àbc + ""déf""")) # True
    bas.MsgBox(svc.IsSheetName("[MySheet]")) # False
  Een bladnaam mag de tekens [ ] * ? : / \ of het teken ' (apostrof) als eerste of laatste teken.
Retourneert True als het eerste teken van elk woord in hoofdletters is en de andere tekens in kleine letters.
svc.IsTitle(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsTitle("This Is The Title Of My Book") ' True
    MsgBox SF_String.IsTitle("This is the Title of my Book") ' False
    MsgBox SF_String.IsTitle("Result Number 100") ' True
  Retourneert True als alle tekens in de tekenreeks in hoofdletters zijn. Niet-alfabetische tekens worden genegeerd.
svc.IsUpper(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsUpper("ABC'(-XYZ") ' True
    MsgBox SF_String.IsUpper("A Title") ' False
  Retourneert True als de tekenreeks een geldig absoluut URL-adres (Uniform Resource Locator) is. Alleen de protocollen http, https en ftp worden ondersteund.
svc.IsUrl(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsUrl("http://foo.bar/?q=Test%20URL-encoded%20stuff") ' True
    MsgBox SF_String.IsUrl("www.somesite.org") ' False
  
    svc = CreateScriptService("String")
    bas = CreateScriptService("Basic")
    bas.MsgBox(svc.IsUrl("http://foo.bar/?q=Test%20URL-encoded%20stuff")) # True
    bas.MsgBox(svc.IsUrl("www.somesite.org")) # False
  Retourneert True als alle tekens in de tekenreeks spaties zijn.
svc.IsWhitespace(inputstr: str): bool
inputstr: De te controleren tekenreeks. Indien leeg, de methode retourneert False.
    MsgBox SF_String.IsWhitespace("    ") ' True
    MsgBox SF_String.IsWhitespace(" " & Chr(9) & Chr(10)) ' True
    MsgBox SF_String.IsWhitespace("") ' False
  Retourneert de invoertekenreeks gecentreerd uitgevuld.
De voorloop- en volgspaties worden verwijderd en de overige tekens worden links en rechts aangevuld tot een opgegeven totale length met het teken padding.
svc.JustifyCenter(inputstr: str, [length: int], [padding: str]): str
inputstr: De tekenreeks die in het midden moet worden uitgelijnd. Indien leeg, retourneert de methode een lege tekenreeks.
length: De lengte van de resulterende tekenreeks (standaard is de lengte van de invoertekenreeks).
Als de opgegeven lengte korter is dan de in het midden uitgevulde invoertekenreeks, wordt de geretourneerde tekenreeks afgekapt.
padding: het enkele teken dat als opvulling moet worden gebruikt (standaard = de ASCII-spatie " ").
    MsgBox SF_String.JustifyCenter("Title", Length := 11) ' "   Title   "
    MsgBox SF_String.JustifyCenter("    ABCDEF", Padding := "_") ' "__ABCDEF__"
    MsgBox SF_String.JustifyCenter("A Long Title", Length := 5) ' "ong T"
  Retourneert de invoerreeks links uitgelijnd.
De voorste spaties worden verwijderd en de overige tekens worden rechts aangevuld tot een opgegeven totale length met het teken padding.
svc.JustifyLeft(inputstr: str, [length: int], [padding: str]): str
inputstr: De tekenreeks die links moet worden uitgelijnd. Indien leeg, retourneert de methode een lege tekenreeks.
length: De lengte van de resulterende tekenreeks (standaard = de lengte van de invoertekenreeks).
Als de opgegeven lengte korter is dan de links uitgelijnde invoertekenreeks, wordt de geretourneerde tekenreeks afgekapt.
padding: Het enkele teken dat als opvulling moet worden gebruikt (standaard = de ASCII-spatie " ").
    MsgBox SF_String.JustifyLeft("Title", Length := 10) ' "Title     "
    MsgBox SF_String.JustifyLeft("    ABCDEF", Padding := "_") ' "ABCDEF____"
    MsgBox SF_String.JustifyLeft("A Long Title", Length := 5) ' "A Lon"
  Retourneert de invoerreeks rechts uitgelijnd.
De voorste spaties worden verwijderd en de overige tekens worden aan de linkerkant aangevuld tot een opgegeven totale length met het teken padding.
svc.JustifyRight(inputstr: str, [length: int], [padding: str]): str
inputstr: De tekenreeks die rechts moet worden uitgelijnd. Indien leeg, retourneert de methode een lege tekenreeks.
length: De lengte van de resulterende tekenreeks (standaard = de lengte van de invoertekenreeks).
Als de opgegeven lengte korter is dan de rechts uitgelijnde invoertekenreeks, wordt de geretourneerde tekenreeks afgekapt.
padding: Het enkele teken dat als opvulling moet worden gebruikt (standaard = de ASCII-spatie " ").
    MsgBox SF_String.JustifyRight("Title", Length := 10) ' "     Title"
    MsgBox SF_String.JustifyRight("  ABCDEF  ", Padding := "_") ' "____ABCDEF"
    MsgBox SF_String.JustifyRight("A Long Title", Length := 5) ' "Title"
  Retourneert de invoertekenreeks tussen enkele of dubbele aanhalingstekens. Bestaande aanhalingstekens blijven ongewijzigd, inclusief aanhalingstekens vooraan en/of achteraan.
svc.Quote(inputstr: str, [quotechar: str]): str
inputstr: De te behandelen tekenreeks.
quotechar: Ofwel het enkele (') of dubbele (") aanhalingsteken (standaard).
    MsgBox SF_String.Quote("Text Value")
    ' "Text Value"
    MsgBox SF_String.Quote("Book Title: ""The Arabian Nights""", "'")
    ' 'Book Title: "The Arabian Nights"'
  Deze methode kan handig zijn bij het voorbereiden van een tekenreeksveld dat moet worden opgeslagen in een csv-achtig bestand, waarvoor tekstwaardes moeten worden ingesloten tussen enkele of dubbele aanhalingstekens.
Vervangt alle tekens die zijn opgegeven in de parameter Before door de overeenkomstige tekens die zijn opgegeven in After.
Als de lengte van Before groter is dan de lengte van After, worden de resterende tekens in Before vervangen door het laatste teken in After.
svc.ReplaceChar(inputstr: str, before: str, after: str): str
inputstr: De invoertekenreeks waarop vervangingen zullen plaatsvinden.
before: Een tekenreeks met de tekens die in de invoertekenreeks worden gezocht voor vervanging.
after: Een tekenreeks met de nieuwe tekens die de tekens vervangen die zijn gedefinieerd in before.
    ' Vervangt tekens met accenten
    MsgBox SF_String.ReplaceChar("Protégez votre vie privée", "àâãçèéêëîïôöûüýÿ", "aaaceeeeiioouuyy")
    ' "Protegez votre vie privee"
    MsgBox SF_String.ReplaceChar("Protégez votre vie privée", "àâãçèéêëîïôöûüýÿ", "")
    ' "Protgez votre vie prive"
    MsgBox SF_String.ReplaceChar("àâãçèéêëîïôöûüýÿ", "àâãçèéêëîïôöûüýÿ", "aaaceeeeiioouuyy")
    ' "aaaceeeeiioouuyy"
  De service SF_String biedt nuttige openbare constanten voor de Latijnse tekensets, zoals in het onderstaande voorbeeld:
    MsgBox SF_String.ReplaceChar("Protégez votre vie privée", SF_String.CHARSWITHACCENT, SF_String.CHARSWITHOUTACCENT)
    ' "Protegez votre vie privee"
  Vervangt alle exemplaren van een bepaalde reguliere expressie door een nieuwe tekenreeks.
svc.ReplaceRegex(inputstr: str, regex: str, newstr: str, [casesensitive: bool]): str
inputstr: De invoertekenreeks waarop vervangingen plaatsvinden.
regex: De reguliere expressie.
newstr: De vervangende tekenreeks.
Hoofdlettergevoelig : Het zoeken kan hoofdlettergevoelig zijn. (standaardwaarde is False).
    MsgBox SF_String.ReplaceRegex("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "[a-z]", "x", CaseSensitive := True)
    ' "Lxxxx xxxxx xxxxx xxx xxxx, xxxxxxxxxxx xxxxxxxxxx xxxx." (elke kleine letter wordt vervangen door "x")
    MsgBox SF_String.ReplaceRegex("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", "x", CaseSensitive := False)
    ' "x x x x x, x x x." (elke woord wordt vervangen door "x")
  Vervangt in een tekenreeks enkele of alle exemplaren van een matrix tekenreeksen door een reeks nieuwe tekenreeksen.
svc.ReplaceStr(inputstr: str, oldstr: str, newstr: str, [occurrences: int], [casesensitive: bool]): str
inputstr: De invoerreeks waarop vervangingen zullen plaatsvinden.
oldstr: Een enkele tekenreeks of een matrix met tekenreeksen. Tekenreeksen met een lengte van nul worden genegeerd.
newstr: De vervangende tekenreeks of de matrix met vervangende tekenreeksen.
Als oldstr een matrix is, wordt elk voorkomen van een van de items in oldstr vervangen door newstr.
Als oldstr en newstr matrixen zijn, vinden vervangingen één voor één plaats tot aan de UBound(newstr).
Als oldstr meer items heeft dan newstr, dan worden de resterende elementen in oldstr vervangen door het laatste element in newstr .
occurrences:Het maximale aantal vervangingen. De standaardwaarde is 0, wat betekent dat alle exemplaren worden vervangen.
Als oldstr een matrix is, wordt de parameter occurrence afzonderlijk berekend voor elk item in de matrix.
Hoofdlettergevoelig : Het zoeken kan hoofdlettergevoelig zijn. (standaardwaarde is False).
    MsgBox SF_String.ReplaceStr("100 xxx 200 yyy", Array("xxx", "yyy"), Array("(1)", "(2)"), CaseSensitive := False)
    ' "100 (1) 200 (2)"
    MsgBox SF_String.ReplaceStr("abCcdefghHij", Array("c", "h"), Array("Y", "Z"), CaseSensitive := False)
    ' "abYYdefgZZij"
  Retourneert een tekenreeks met een leesbare representatie van het argument, afgekapt op een bepaalde lengte. Dit is vooral handig voor het opsporen van fouten of loggen.
Als de parameter anyvalue een object is, wordt deze tussen vierkante haken "[" en "]" geplaatst.
In tekenreeksen worden tabs en regeleinden vervangen door \t, \n of \r.
Als de uiteindelijke lengte de parameter maxlength overschrijdt, wordt het laatste deel van de tekenreeks vervangen door " ... (N)", waarbij N de totale lengte is van de oorspronkelijke tekenreeks vóór afkappen.
svc.Represent(anyvalue: any, [maxlength: int]): str
anyvalue: De invoerwaarde die moet worden weergegeven. Het kan elke waarde zijn, zoals een tekenreeks, een matrix, een Basic-object, een UNO-object, enz.
maxlength: De maximale lengte van de resulterende tekenreeks. De standaardwaarde is 0, wat betekent dat er geen limiet is aan de lengte van de resulterende weergave.
    MsgBox SF_String.Represent("this is a usual string") ' "this is a usual string"
    MsgBox SF_String.Represent("this is a usual string", 15) ' "this i ... (22)"
    MsgBox SF_String.Represent("this is a" & Chr(10) & " 2-lines string") ' "this is a\n 2-lines string"
    MsgBox SF_String.Represent(Empty) ' "[EMPTY]"
    MsgBox SF_String.Represent(Null) ' "[NULL]"
    MsgBox SF_String.Represent(Pi) ' "3.142"
    MsgBox SF_String.Represent(CreateUnoService("com.sun.star.util.PathSettings")) ' "[com.sun.star.comp.framework.PathSettings]"
  Merk op dat de weergave van gegevenstypes zoals matrixen en ScriptForge.Dictionary-objectinstanties, zowel het gegevenstype als hun waardes omvat:
    ' Een voorbeeld met een Basic ingebouwde matrix
    MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
    ' "[ARRAY] (0:2) (1, 2, Text\there)"
    ' Een voorbeeld met een ScriptForge matrix
    Dim aValues as Variant
    aValues = SF_Array.RangeInit(1, 5)
    MsgBox SF_String.Represent(aValues)
    ' "[ARRAY] (0:4) (1.0, 2.0, 3.0, 4.0, 5.0)"
    ' Een voorbeeld met een ScriptForge woordenboek
    Dim myDict As Variant : myDict = CreateScriptService("Dictionary")
    myDict.Add("A", 1) : myDict.Add("B", 2)
    MsgBox SF_String.Represent(myDict)
    ' "[Dictionary] ("A":1, "B":2)"
  Retourneert de invoertekenreeks in omgekeerde volgorde.
Deze methode is gelijk aan de ingebouwde Basic-functie StrReverse.
Om de functie StrReverse te gebruiken, moet de instructie Optie VBASupport 1 aanwezig zijn in de module.
svc.Reverse(inputstr: str): str
inputstr: De om te keren tekenreeks.
    MsgBox SF_String.Reverse("abcdefghij") ' "jihgfedcba"
  Retourneert een op nul gebaseerde matrix van tekenreeksen met de regels in de invoertekenreeks. Elk item in de matrix wordt verkregen door de invoertekenreeks te splitsen bij nieuwe regeltekens.
svc.SplitLines(inputstr: str, [keepbreaks: int]): str[0..*]
inputstr: De te splitsen tekenreeks.
keepbreaks: Indien True, worden regeleinden behouden in de uitvoermatrix (standaard = False).
    Dim a as Variant
    a = SF_String.SplitLines("Line1" & Chr(10) & "Line2" & Chr(13) & "Line3")
    ' a = Array("Line1", "Line2", "Line3")
    a = SF_String.SplitLines("Line1" & Chr(10) & "Line2" & Chr(13) & "Line3" & Chr(10))
    ' a = Array("Line1", "Line2", "Line3", "")
    a = SF_String.SplitLines("Line1" & Chr(10) & "Line2" & Chr(13) & "Line3" & Chr(10), KeepBreaks := True)
    ' a = Array("Line1\n", "Line2\r", "Line3\n", "")
  Splitst een tekenreeks in een matrix van elementen met een opgegeven scheidingsteken.
Als een subtekenreeks tussen aanhalingstekens een scheidingsteken bevat, wordt dit genegeerd. Dit is handig bij het ontleden van CSV-achtige records die tekenreeksen tussen aanhalingstekens bevatten.
svc.SplitNotQuoted(inputstr: str, [delimiter: str], [occurrences: int], [quotechar: str]): str[0..*]
inputstr: De te splitsen tekenreeks.
delimiter: Een tekenreeks van een of meer tekens die als scheidingsteken wordt gebruikt. Het standaardscheidingsteken is het ASCII-spatieteken " ".
occurrences: Het maximum aantal subtekenreeksen dat moet worden geretourneerd. De standaardwaarde is 0, wat betekent dat er geen limiet is voor het aantal geretourneerde tekenreeksen.
quotechar: Ofwel het enkele (') of dubbele (") aanhalingsteken.
    arr1 = SF_String.SplitNotQuoted("abc def ghi")
    ' arr1 = Array("abc", "def", "ghi")
    arr2 = SF_String.SplitNotQuoted("abc,""def,ghi""", ",")
    ' arr2 = Array("abc", """def,ghi""")
    arr3 = SF_String.SplitNotQuoted("abc,""def\"",ghi""", ",")
     ' arr3 = Array("abc", """def\"",ghi""")
    arr4 = SF_String.SplitNotQuoted("abc,""def\"",ghi"""",", ",")
    ' arr4 = Array("abc", """def\"",ghi""", "")
  
    svc = CreateScriptService("String")
    arr1 = svc.SplitNotQuoted('abc def ghi')
    # arr1 = ('abc', 'def', 'ghi')
    arr2 = svc.SplitNotQuoted('abc,"def,ghi"', ",")
    # arr2 = ('abc', '"def,ghi"')
    arr3 = svc.SplitNotQuoted(r'abc,"def\",ghi"', ",")
    # arr3 = ('abc', '"def\\",ghi"')
    arr4 = svc.SplitNotQuoted(r'abc,"def\",ghi"",', ",")
    # arr4 = ('abc', '"def\\",ghi""', '')
  Let op de verschillen tussen Basic en Python bij het weergeven van tekenreeksen. In Basic worden bijvoorbeeld twee ""-tekens in een tekenreeks geïnterpreteerd als een enkel "-teken. In Python kunnen tekenreeksen tussen enkele aanhalingstekens "-tekens bevatten zonder ze te verdubbelen.
Retourneert True als de eerste tekens van een tekenreeks identiek zijn aan een bepaalde subtekenreeks.
Deze methode retourneert False als ofwel de invoertekenreeks of de subtekenreeks een lengte = 0 heeft of wanneer de subtekenreeks langer is dan de invoertekenreeks.
svc.StartsWith(inputstr: str, substring: str, [casesensitive: bool]): bool
inputstr: De te testen tekenreeks.
substring: De subtekenreeks die moet worden doorzocht aan het begin van inputstr.
Hoofdlettergevoelig : Het zoeken kan hoofdlettergevoelig zijn. (standaardwaarde is False).
    MsgBox SF_String.StartsWith("abcdefg", "ABC") 'True
    MsgBox SF_String.StartsWith("abcdefg", "ABC", CaseSensitive := True) 'False
  Retourneert de invoertekenreeks zonder de voorloop- en volgspaties.
svc.TrimExt(inputstr: str): str
inputstr: De in te korten tekenreeks.
    MsgBox SF_String.TrimExt(" Some text.  ") ' "Some text."
    MsgBox SF_String.TrimExt("   ABCDEF" & Chr(9) & Chr(10) & Chr(13) & " ") ' "ABCDEF"
  Converteert elke escape-reeks (\\, \n, \r, \t) in de invoerreeks naar het bijbehorende ASCII-teken.
svc.Unescape(inputstr: str): str
inputstr: De te converteren tekenreeks.
    MsgBox SF_String.Unescape("abc\n\tdef\\n")
    ' "abc" & Chr(10) & Chr(9) & "def\n"
  Verwijdert de enkele of dubbele aanhalingstekens die de invoertekenreeks omsluiten.
Dit is handig bij het ontleden van CSV-achtige records die tekenreeksen tussen aanhalingstekens bevatten.
svc.Unquote(inputstr: str, [quotechar: str]): str
inputstr: De tekenreeks waarvan de aanhalingstekens moeten worden verwijderd.
quotechar: Ofwel het enkele (') of dubbele (") aanhalingsteken (standaard).
    Dim s as String
    ' s = "Wat tekst" (zonder aanhalingstekens)
    s = SF_String.Unquote("""Some text""")
    ' Onderstaande tekenreeks heeft geen aanhalingstekens, dus deze blijft ongewijzigd
    's = "Wat tekst" (ongewijzigd)
    s = SF_String.Unquote("Some text")
    ' Aanhalingstekens binnen de tekenreeks worden niet verwijderd
    ' s = "The ""true"" meaning" (ongewijzigd)
    s = SF_String.Unquote("The ""true"" meaning")
  Converteert de invoertekenreeks naar een matrix met subtekenreeksen, zodat elk item in de matrix maximaal een bepaald aantal tekens heeft.
In de praktijk retourneert deze methode een op nul gebaseerde matrix van uitvoerregels, zonder nieuwe regels aan het einde, behalve de reeds bestaande regeleinden.
Tabbladen worden uitgevouwen met dezelfde procedure die wordt uitgevoerd door de methode ExpandTabs.
Symbolische regeleinden worden vervangen door hun equivalente ASCII-tekens.
Als de verpakte uitvoer geen inhoud heeft, is de geretourneerde matrix leeg.
svc.Wrap(inputstr: str, [width: int], [tabsize: int]): str
inputstr: De in te pakken tekenreeks.
width: Het maximum aantal tekens in elke regel (standaard is 70).
tabsize: Voordat de tekst ingepakt wordt, worden de bestaande TAB-tekens Chr(9) vervangen door spaties. Het argument tabsize definieert de TAB-stops bij TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (standaard is 8).
    a = "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
    b = SF_String.Wrap(a, 20)
    ' Array("Neque porro ", "quisquam est qui ", "dolorem ipsum quia ", "dolor sit amet, ", "consectetur, ", "adipisci velit...")
  
    a = "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
    b = svc.Wrap(a, 20)
    # ('Neque porro ', 'quisquam est qui ', 'dolorem ipsum quia ', 'dolor sit amet, ', 'consectetur, ', 'adipisci velit...')