Domanda

Come posso ottenere la stringa all'interno di una parentesi con una funzione personalizzata?

e.x. la stringa "Grecia (+30)" deve restituire "+30" solo

È stato utile?

Soluzione

Ci sono alcuni modi diversi.

metodi delle stringhe Plain:

Dim left As Integer = str.IndexOf('(')
Dim right As Integer= str.IndexOf(')')
Dim content As String = str.Substring(left + 1, right - left - 1)

Espressione regolare:

Dim content As String = Regex.Match(str, "\((.+?)\)").Groups[1].Value

Altri suggerimenti

Per il problema generale, suggerirei usando Regex. Tuttavia, se si è sicuri sul formato della stringa di input (un solo set di parentesi, parentesi aperte prima di chiudere parentesi tonda), questo dovrebbe funzionare:

int startIndex = s.IndexOf('(') + 1;
string result = s.Substring(startIndex, s.LastIndexOf(')') - startIndex);

espressioni regolari .

Dim result as String = System.Text.RegularExpressions.Regex.Match("GREECE (+30)", "\((?<Result>[^\)]*)\)").Groups["Result"].Value;

Il codice non è testato, ma mi aspetto problemi solo di compilazione.

Si potrebbe guardare a espressioni regolari, o comunque giocare con la funzione IndexOf()

In Python, utilizzando il metodo indice di corda e affettare:

>>> s = "GREECE(+30)"
>>> s[s.index('(')+1:s.index(')')]
'+30'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top