Auswählen des n-ten Werts aus einer Liste mit REGEX und Nullverarbeitung
Das Extrahieren des n-ten Elements aus einer durch Kommas getrennten Liste kann mit REGEXP_SUBSTR erreicht werden (), kann jedoch fehlschlagen, wenn auf Nullwerte gestoßen wird. Um dieses Problem zu beheben, ziehen Sie die folgende Lösung in Betracht:
Der verwendete reguläre Ausdruck ist (.*?)(,|$), der alles vor dem n-ten Vorkommen eines Kommas oder dem Ende der Zeile erfasst. Der .*? Das nicht gierige Muster entspricht der Mindestanzahl an Zeichen, die zum Erreichen des Kommas erforderlich sind. Die n-te Untergruppe stellt den gesuchten Wert dar.
SELECT REGEXP_SUBSTR('1,,3,4,5', '(.*?)(,|$)', 1, 2, NULL, 1) AS data FROM dual; -- Output: NULL
Dieser Ansatz stellt sicher, dass Nullwerte unabhängig von ihrer Position in der Liste als Null zurückgegeben werden.
Um die Wiederverwendbarkeit zu verbessern, sollten Sie die Kapselung in Betracht ziehen Regex-Logik in einer Funktion:
FUNCTION GET_LIST_ELEMENT(string_in VARCHAR2, element_in NUMBER, delimiter_in VARCHAR2 DEFAULT ',') RETURN VARCHAR2 AS BEGIN RETURN REGEXP_SUBSTR(string_in, '(.*?)(\'||delimiter_in||'|$)', 1, element_in, NULL, 1); END GET_LIST_ELEMENT;
Die Verwendung dieser Funktion vereinfacht die Extraktion Prozess:
SELECT GET_LIST_ELEMENT('123,222,,432,555', 4) AS value FROM dual; -- Output: 432
Dieser Ansatz verarbeitet Nullwerte effektiv und bietet eine vielseitige Lösung zum Extrahieren von Daten aus durch Kommas getrennten Listen.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich das n-te Element mithilfe von REGEXP_SUBSTR und dem Umgang mit Nullen sicher aus einer durch Kommas getrennten Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!