String (str)
Alle Strings haben die folgenden Methoden. Strings sind unveränderlich, alle Operationen geben ihre Ergebnisse als neuen String zurück.
Zurückgegeben von
String-Objekte werden von den folgenden Funktionen und Methoden zurückgegeben
get_option()join_paths()bool.to_string()build_machine.cpu()build_machine.cpu_family()build_machine.endian()build_machine.kernel()build_machine.subsystem()build_machine.system()build_tgt.full_path()build_tgt.name()build_tgt.path()cfg_data.get()cfg_data.get_unquoted()compiler.get_argument_syntax()compiler.get_define()compiler.get_id()compiler.get_linker_id()compiler.version()custom_idx.full_path()custom_tgt.full_path()dep.get_configtool_variable()dep.get_pkgconfig_variable()dep.get_variable()dep.include_type()dep.name()dep.type_name()dep.version()external_program.full_path()external_program.path()external_program.version()file.full_path()int.to_string()meson.backend()meson.build_options()meson.build_root()meson.current_build_dir()meson.current_source_dir()meson.global_build_root()meson.global_source_root()meson.project_build_root()meson.project_name()meson.project_source_root()meson.project_version()meson.source_root()meson.version()runresult.stderr()runresult.stdout()str.format()str.join()str.replace()str.strip()str.substring()str.to_lower()str.to_upper()str.underscorify()
String-Methoden
str.contains()
Gibt true zurück, wenn der String den als Argument angegebenen String enthält.
Signatur
# Returns `true` if string contains the string specified as the argument
bool contains(
str fragment, # The string fragment to check
)
Beispiel
target = 'x86_FreeBSD'
is_fbsd = target.to_lower().contains('freebsd')
# is_fbsd now has the boolean value 'true'
Argumente
Die Methode str.contains() akzeptiert die folgenden positionellen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
fragment |
str |
Das zu prüfende String-Fragment |
|
str.endswith()
Gibt true zurück, wenn der String mit dem als Argument angegebenen String endet.
Signatur
# Returns true if string ends with the string specified as the argument
bool endswith(
str fragment, # The string fragment to check
)
Beispiel
target = 'x86_FreeBSD'
is_bsd = target.to_lower().endswith('bsd') # boolean value 'true'
Argumente
Die Methode str.endswith() akzeptiert die folgenden positionellen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
fragment |
str |
Das zu prüfende String-Fragment |
|
str.format()
Strings können mit der String-Formatierungsfunktionalität erstellt werden.
Weitere Informationen finden Sie unter dem Meson-Syntaxeintrag.
Seit 1.3.0 sind Werte außer Strings, Ganzzahlen, Bools, Optionen, Dictionaries und Listen davon veraltet. Sie gaben zuvor die interne Darstellung des rohen Python-Objekts aus.
Signatur
# Strings can be built using the string formatting functionality
str format(
str fmt, # The string to format
int | bool | str value..., # The values to replace the @number@ placeholders in the format string
)
Beispiel
template = 'string: @0@, number: @1@, bool: @2@'
res = template.format('text', 1, true)
# res now has value 'string: text, number: 1, bool: true'
Argumente
Die Argumentabflachung wird von dieser Funktion NICHT UNTERSTÜTZT.
Die Methode str.format() akzeptiert die folgenden positionellen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
fmt |
str |
Der zu formatierende String. Die Formatierung funktioniert, indem Platzhalter vom Typ |
|
Zusätzlich akzeptiert die Methode zwischen 0 und unendlich variable Argumente (wert...) vom Typ .int | bool | str
Die Werte, die die @nummer@-Platzhalter im Format-String ersetzen.
str.join()
Das Gegenteil von split, z.B. '.'.join(['a', 'b', 'c'] ergibt 'a.b.c'.
Signatur
# The opposite of split,
str join(
str strings..., # The strings to join with the current string
)
Beispiel
# Similar to the Python str.join()
output = ' '.join(['foo', 'bar'])
# Output value is 'foo bar'
pathsep = ':'
path = pathsep.join(['/usr/bin', '/bin', '/usr/local/bin'])
# path now has the value '/usr/bin:/bin:/usr/local/bin'
Argumente
Die Methode akzeptiert zwischen 0 und unendlich variable Argumente (strings...) vom Typ .str
Die Strings, die mit dem aktuellen String verbunden werden sollen.
Vor Meson 0.60.0 akzeptierte diese Funktion nur ein einziges positionelles Argument vom Typ [[list[str]]].
(seit 0.60.0)
str.replace()
Sucht alle Vorkommen von alt und ersetzt sie durch neu
Signatur
(seit 0.58.0)
# Search all occurrences of `old` and replace it with `new`
str replace(
str old, # The substring to search
str new, # The replacement string
)
Beispiel
# Replaces all instances of one substring with another
s = 'semicolons;as;separators'
s = s.replace('as', 'are')
# 's' now has the value of 'semicolons;are;separators'
Argumente
Die Methode str.replace() akzeptiert die folgenden positionellen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
alt |
str |
Der zu suchende Teilstring |
|
neu |
str |
Der Ersatzstring |
|
str.split()
Teilt den String am angegebenen Zeichen (oder Leerzeichen, wenn nicht gesetzt) und gibt die Teile in einem Array zurück.
Signatur
# Splits the string at the specified character
list[str] split(
str [split_string], # Specifies the character / substring where to split the string
)
Beispiel
# Similar to the Python str.split()
components = 'a b c d '.split()
# components now has the value ['a', 'b', 'c', 'd']
components = 'a b c d '.split(' ')
# components now has the value ['a', 'b', '', '', 'c', 'd', '']
Argumente
Die Methode str.split() akzeptiert die folgenden positionellen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
split_string |
str |
Gibt das Zeichen / den Teilstring an, an dem der String geteilt werden soll. |
[optional] |
str.splitlines()
Teilt den String in ein Array von Zeilen. Im Gegensatz zu .split('\n') erzeugt der leere String ein leeres Array, und wenn der String mit einer Zeilenumbruch endet, teilt splitlines() nicht an diesem letzten Zeilenumbruch. '\n', '\r' und '\r\n' werden alle als Zeilenumbrüche betrachtet.
Signatur
(seit 1.2.0)
list[str] splitlines()
Beispiel
output = 'hello\nworld\n'.splitlines()
# Output value is ['hello', 'world']
output = ''.splitlines()
# Output value is []
fs = import('fs')
paths = fs.read('my_paths.list').splitlines()
# paths is now the paths listed in 'my_paths.list', or an empty list
# if 'my_paths.list' is empty
str.startswith()
Gibt true zurück, wenn der String mit dem als Argument angegebenen String beginnt.
Signatur
# Returns true if string starts with the string specified as the argument
bool startswith(
str fragment, # The string fragment to check
)
Beispiel
target = 'x86_FreeBSD'
is_x86 = target.startswith('x86') # boolean value 'true'
Argumente
Die Methode str.startswith() akzeptiert die folgenden positionellen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
fragment |
str |
Das zu prüfende String-Fragment |
|
str.strip()
Entfernt führende/endende Zeichen aus dem String.
Standardmäßig sind die zu entfernenden Zeichen Leerzeichen und Zeilenumbrüche.
Signatur
# Removes leading/ending characters from the string
str strip(
str [strip_chars], # Instead of whitespace, strip all the characters in this string
)
Beispiel
# Similar to the Python str.strip(). Removes leading/ending spaces and newlines
define = ' -Dsomedefine '
stripped_define = define.strip()
# 'stripped_define' now has the value '-Dsomedefine'
Argumente
Die Methode str.strip() akzeptiert die folgenden positionellen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
strip_chars |
str |
Anstelle von Leerzeichen werden alle Zeichen in diesem String gestrippt. |
(seit 0.43.0) [optional] |
str.substring()
Gibt einen Teilstring zurück, der von start bis end angegeben ist. Beide Argumente start und end sind optional, sodass beispielsweise 'foobar'.substring() 'foobar' zurückgibt.
Die Methode akzeptiert negative Werte, wobei negative start sich auf das Ende des Strings bezieht len(string) - start, ebenso wie negative end.
Wenn start oder end außerhalb der Grenzen liegen, wird die Position des nächstgelegenen Zeichens verwendet. Wenn start größer als end ist, ist das Ergebnis ein leerer Teilstring.
Signatur
(seit 0.56.0)
# Returns a substring specified from `start` to `end`
str substring(
int [start], # The start position
int [end], # The end position
)
Beispiel
# Similar to the Python str[start:end] syntax
target = 'x86_FreeBSD'
platform = target.substring(0, 3) # prefix string value 'x86'
system = target.substring(4) # suffix string value 'FreeBSD'
Beispiel mit negativen Werten
string = 'foobar'
string.substring(-5, -3) # => 'oo'
string.substring(1, -1) # => 'ooba'
Beispiel mit Werten außerhalb der Grenzen
string = 'foobar'
string.substring(64) # => ''
string.substring(0, 64) # => 'foobar'
string.substring(64, 0) # => ''
Argumente
Die Methode str.substring() akzeptiert die folgenden positionellen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
start |
int |
Die Startposition |
[optional] |
end |
int |
Die Endposition |
[optional] |
str.to_int()
Konvertiert den String in einen Integer und löst einen Fehler aus, wenn dies nicht möglich ist
Signatur
int to_int()
Beispiel
version = '1'
# Converts the string to an int and throws an error if it can't be
ver_int = version.to_int()
str.to_lower()
Konvertiert alle Zeichen in Kleinbuchstaben
Signatur
str to_lower()
Beispiel
target = 'x86_FreeBSD'
lower = target.to_lower() # t now has the value 'x86_freebsd'
str.to_upper()
Konvertiert alle Zeichen in Großbuchstaben
Signatur
str to_upper()
Beispiel
target = 'x86_FreeBSD'
upper = target.to_upper() # t now has the value 'X86_FREEBSD'
str.underscorify()
Erstellt einen String, bei dem jedes nicht-alphabetische, nicht-numerische Zeichen durch _ ersetzt wird.
Signatur
str underscorify()
Beispiel
name = 'Meson Docs.txt#Reference-manual'
# Replaces all characters other than `a-zA-Z0-9` with `_` (underscore)
# Useful for substituting into #defines, filenames, etc.
underscored = name.underscorify()
# underscored now has the value 'Meson_Docs_txt_Reference_manual'
str.version_compare()
Führt den Vergleich von semantischen Versionen durch.
Signatur
# Does semantic version comparison
bool version_compare(
str compare_string, # The string to compare to
)
Beispiel
version = '1.2.3'
# Compare version numbers semantically
is_new = version.version_compare('>=2.0')
# is_new now has the boolean value false
# Supports the following operators: '>', '<', '>=', '<=', '!=', '==', '='
Die Konventionen für den Meson-Versionsvergleich umfassen
'3.6'.version_compare('>=3.6.0') == false
Am besten ist es, eindeutig zu sein und die vollständige Revisionsstufe für den Vergleich anzugeben.
Argumente
Die Methode str.version_compare() akzeptiert die folgenden positionellen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
compare_string |
str |
Der String, mit dem verglichen werden soll. |
|
Die Ergebnisse der Suche sind