Sie könnten dies nutzen:
a.*(b|c)|b.*(a|c)|c.*(a|b)
Die variablen Teile mehrere Zeichen lang sein. Hier finden Sie einige Testdaten:
Test mit aa dann bb darin
Test mit bb dann aa darin
Test mit aa dann cc darin
Test mit cc dann aa darin
Test mit bb dann cc darin
Test mit cc dann bb darin
Test mit nur aa darin
Test mit nur bb darin
Test mit nur cc darin
Test mit aa, bb und cc.
Sie diese SQL anwenden könnte es testen:
select txt,
CASE WHEN txt regexp 'aa.*(bb|cc)|bb.*(aa|cc)|cc.*(aa|bb)'
THEN 'Yes'
ELSE 'No'
END matches
from t
hier ein fiddle, das eine Spalte auf die Testdaten hinzufügt, der angibt, ob eine Übereinstimmung vorhanden ist oder nicht:
| txt | matches |
|----------------------------|---------|
| test with aa then bb in it | Yes |
| test with bb then aa in it | Yes |
| test with aa then cc in it | Yes |
| test with cc then aa in it | Yes |
| test with bb then cc in it | Yes |
| test with cc then bb in it | Yes |
| test with only aa in it | No |
| test with only bb in it | No |
| test with only cc in it | No |
| test with aa, bb and cc. | Yes |
sind a, b, c Zeichen oder Zeichenfolgen? – Reversal
Können Sie einige Beispielzeichenfolgen zusammen mit der erwarteten Ausgabe posten –