2014-02-21 12 views
7

Wie kann ich alle \p{L} aber nicht \p{Alpha} in einem regulären Ausdruck zusammenbringen? Ist es möglich, eine logische AND in Java Regexp zu implementieren? Wenn die Antwort ja lautet, wie kann das erreicht werden?Regulärer Ausdruck Übereinstimmung alle p {L} aber nicht p {Alpha}

+0

welche regex hast du bisher versuchen? – donfuxx

+0

Gibt es einen Grund, warum dies sowohl mit Java als auch C# getaggt ist? – Kjartan

+0

@Kjartan, weil mein Server Java ist und mein Client-Programm ist C# –

Antwort

8

Ja, durch ein negierte character class mit:

[^\P{L}\p{Alpha}] 

[^\P{L}] entspricht die gleichen wie \p{L}, aber die negierte Zeichenklasse ermöglicht es, Zeichen/Eigenschaften aus dieser Menge von Zeichen zu subtrahieren.

+0

danke, es funktioniert gut –

5

Es ist möglich, aber es ist Java-spezifisch:

[\p{L}&&[^\p{Alpha}]] 

(Zitat gegebenenfalls in einem Java-String usw.)

+0

Sehr schön. Kann auch als '[\ p {L} && \ P {Alpha}]' geschrieben werden. –

+0

ich versuche es, aber es funktioniert nicht in C# –

+0

@MinhLe: Sie haben für eine Java Regex ... –

Verwandte Themen