Mentre non posso spiegare direttamente perché 2
è come "*?<*?"
.
La query viene letta;
*
- Partita 0 o più caratteri
?
- Seguito da un singolo carattere
<
- Seguito dal <
carattere
*
- Seguito da 0 o più caratteri
?
- Terminato di un solo carattere
Per la tua logica che vuoi;
almeno tre caratteri prima di partite, con "<" che si verificano da qualche parte sul all'interno della stringa di
che si traduce in una query di;
Dim rc As Boolean = "2" Like "???*<*"
Quale legge;
???
- corrispondere almeno 3 caratteri
*
- Seguito da un numero qualsiasi di ulteriori caratteri
<
- Seguito dal <
carattere
*
- Seguito da un numero qualsiasi di ulteriori caratteri
Non una risposta diretta Lo so, ma spero che aiuti lo stesso ...
EDIT:
Per rispondere a tuo commento qui sotto.
Ti piacerebbe;
trovare una stringa che ha un "<" in esso da qualche parte con almeno un carattere su entrambi i lati
che si traduce in una query di;
Dim rc As Boolean = "2" Like "*?<?*"
Ciò restituirebbe False come risultato;
Dim rc As Boolean = "<" Like "*?<?*"
Tuttavia;
Dim rc As Boolean = "2<2" Like "*?<?*"
Restituisce vero.
Spero che questo aiuti (di più!)
Non so perché "2" corrisponde a "<". Tuttavia, non richiede tre caratteri prima poiché '*' è un carattere jolly per qualsiasi cosa (quindi anche zero caratteri). –
So * corrisponde a qualsiasi cosa, quindi "2" passa sia il * che il? caratteri jolly, ma il <è ancora mancante dalla partita come è il secondo? –
Stranamente se rimuovi anche solo uno dei due caratteri jolly finali il risultato è falso. – Steve