

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Die Funktion REGEXP\$1INSTR
<a name="REGEXP_INSTR"></a>

Durchsucht eine Zeichenfolge nach einem regulären Ausdrucksmuster und gibt eine Ganzzahl zurück, die die Anfangs- oder Endposition der übereinstimmenden Unterzeichenfolge angibt. Wenn keine Übereinstimmung gefunden wird, gibt die Funktion `0` zurück. REGEXP\$1INSTR ist der Funktion [POSITION](r_POSITION.md) ähnlich. Sie können damit jedoch eine Zeichenfolge nach einem regulären Ausdrucksmuster durchsuchen. Weitere Informationen zu regulären Ausdrücken finden Sie unter [POSIX-Operatoren](pattern-matching-conditions-posix.md) und [Regulärer Ausdruck](https://en.wikipedia.org/wiki/Regular_expression) in Wikipedia.

## Syntax
<a name="REGEXP_INSTR-synopsis"></a>

```
REGEXP_INSTR( source_string, pattern [, position [, occurrence] [, option [, parameters ] ] ] ] )
```

## Argumente
<a name="REGEXP_INSTR-arguments"></a>

 *source\$1string*   
Ein Zeichenfolgenausdruck (beispielsweise ein Spaltenname), der gesucht werden soll. 

 *pattern*   
Ein UTF-8-Zeichenfolgenliteral, das ein Muster für reguläre Ausdrücke darstellt. Weitere Informationen finden Sie unter [POSIX-Operatoren](pattern-matching-conditions-posix.md).

 *position*   
(optional) Ein positiver `INTEGER`, die die Position innerhalb von *source\$1string* angibt, an der die Suche gestartet werden soll. Die Position basiert auf der Anzahl der Zeichen, nicht der Bytes. Daher werden Zeichen mit mehreren Bytes als einzelne Zeichen gezählt. Der Standardwert ist `1`. Wenn *position* kleiner als `1` ist, beginnt die Suche mit dem ersten Zeichen von *source\$1string*. Wenn *position* größer als die Anzahl der Zeichen in *source\$1string* ist, ist das Ergebnis `0`.

 *occurrence*   
(Optional) Eine positive `INTEGER`, die angibt, welches Vorkommen des Musters verwendet werden soll. REGEXP\$1INSTR überspringt die ersten `occurrence-1` Übereinstimmungen. Der Standardwert ist `1`. Wenn *occurrence* kleiner als `1` oder größer als die Anzahl der Zeichen in *source\$1string* ist, wird die Suche ignoriert und das Ergebnis ist `0`.

 *option*   
(Optional) Ein Wert, der angibt, ob die Position des ersten Zeichens der Übereinstimmung (`0`) oder die Position des ersten Zeichens nach dem Ende der Übereinstimmung (`1`) zurückgegeben werden soll. Ein Wert ungleich null entspricht `1`. Der Standardwert ist `0`. 

 *parameters (Parameter*   
(Optional) Ein oder mehrere Zeichenfolgenliterale, die angeben, wie die Funktion mit dem Muster übereinstimmt. Die folgenden Werte sind möglich:  
+ c – Übereinstimmung mit Unterscheidung von Groß- und Kleinschreibung durchführen. Die Standardeinstellung ist, beim Abgleich die Groß- und Kleinschreibung zu beachten. 
+ i – Übereinstimmung ohne Unterscheidung von Groß- und Kleinschreibung durchführen. 
+ e – Teilzeichenfolge mittels eines Unterausdrucks extrahieren. 

  Wenn *pattern* einen Unterausdruck enthält, sucht REGEXP\$1INSTR nach einer Teilzeichenfolge, die mit dem ersten Unterausdruck in *pattern* übereinstimmt. REGEXP\$1INSTR berücksichtigt nur den ersten Unterausdruck. Zusätzliche Unterausdrücke werden ignoriert. Wenn das Muster über keinen Unterausdruck verfügt, ignoriert REGEXP\$1INSTR den Parameter 'e'. 
+ p – Das Musters mit einem PCRE-Dialekt (Perl Compatible Regular Expression) interpretieren. Weitere Informationen zu PCRE finden Sie unter [Perl-kompatible reguläre Ausdrücke](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) in Wikipedia.

## Rückgabetyp
<a name="REGEXP_INSTR-return-type"></a>

Ganzzahl

## Beispiele
<a name="REGEXP_INSTR-examples"></a>

In den folgenden Beispielen werden Daten aus der Tabelle USERS in der TICKIT-Beispieldatenbank verwendet. Weitere Informationen finden Sie unter [Beispieldatenbank](c_sampledb.md). 

Verwenden Sie das folgende Beispiel, um nach dem Zeichen `@` zu suchen, mit dem Domain-Namen beginnen. Anschließend wird die Anfangsposition der ersten Übereinstimmung zurückgegeben.

```
SELECT email, REGEXP_INSTR(email, '@[^.]*')
FROM users
ORDER BY userid LIMIT 4;

+-----------------------------------------------+--------------+
|                     email                     | regexp_instr |
+-----------------------------------------------+--------------+
| Etiam.laoreet.libero@sodalesMaurisblandit.edu |           21 |
| Suspendisse.tristique@nonnisiAenean.edu       |           22 |
| amet.faucibus.ut@condimentumegetvolutpat.ca   |           17 |
| sed@lacusUtnec.ca                             |            4 |
+-----------------------------------------------+--------------+
```

Verwenden Sie das folgende Beispiel, um nach Varianten des Worts `Center` zu suchen. Anschließend wird die Anfangsposition der ersten Übereinstimmung zurückgegeben.

```
SELECT venuename, REGEXP_INSTR(venuename,'[cC]ent(er|re)$')
FROM venue
WHERE REGEXP_INSTR(venuename,'[cC]ent(er|re)$') > 0
ORDER BY venueid LIMIT 4;

+-----------------------+--------------+
|       venuename       | regexp_instr |
+-----------------------+--------------+
| The Home Depot Center |           16 |
| Izod Center           |            6 |
| Wachovia Center       |           10 |
| Air Canada Centre     |           12 |
+-----------------------+--------------+
```

Verwenden Sie das folgende Beispiel, um die Anfangsposition des ersten Vorkommens der Zeichenfolge `FOX` zu finden, wobei nicht zwischen Groß- und Kleinschreibung unterschieden wird. 

```
SELECT REGEXP_INSTR('the fox', 'FOX', 1, 1, 0, 'i');

+--------------+
| regexp_instr |
+--------------+
|            5 |
+--------------+
```

Verwenden Sie das folgende Beispiel, um ein im PCRE-Dialekt geschriebenes Muster zu verwenden, um Wörter mit mindestens einer Zahl und einem Kleinbuchstaben zu finden. Hierfür wird der Operator `?=` verwendet, der eine bestimmte Lookahead-Konnotation in PCRE hat. In diesem Beispiel wird die Anfangsposition des zweiten Wortes gefunden.

```
SELECT REGEXP_INSTR('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 2, 0, 'p');

+--------------+
| regexp_instr |
+--------------+
|           21 |
+--------------+
```

Verwenden Sie das folgende Beispiel, um ein im PCRE-Dialekt geschriebenes Muster zu verwenden, um Wörter mit mindestens einer Zahl und einem Kleinbuchstaben zu finden. Hierfür wird der Operator `?=` verwendet, der eine bestimmte Lookahead-Konnotation in PCRE hat. In diesem Beispiel wird die Anfangsposition des zweiten Worts gefunden. Dies unterscheidet sich insofern vom vorherigen Beispiel, als dass nicht zwischen Groß- und Kleinschreibung unterschieden wird.

```
SELECT REGEXP_INSTR('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 2, 0, 'ip');

+--------------+
| regexp_instr |
+--------------+
|           15 |
+--------------+
```