Od Perl regex manual:
Dopasowuje Unicode rozszerzony grafem klaster.
\X
pasuje dość dobrze, jaki normalny (nie-Unicode-programista) użycie będzie uważał za pojedynczy znak . Jako przykład rozważ G z pewnego rodzaju znakiem diakrytycznym, takim jak strzałka. Nie ma takiego pojedynczego znaku w standardzie Unicode, ale można go skomponować za pomocą G, a następnie Unicode "POŁĄCZENIE DO PĘKNIĘĆ DO PŁYT W GÓRĘ PONIŻEJ" i byłoby wyświetlane przez oprogramowanie obsługujące Unicode, jak gdyby było to pojedyncze znaki.
Mnemonik: eXtended znak Unicode.
I od PCRE man pages (2012):
PCRE implementuje prostszą wersję \ X niż Perl, które zmieniły się, aby \ X mecz, co nazywa się "Unicode rozszerzony grafem klaster". Jest to bardziej skomplikowane niż rozszerzona sekwencja Unicode, którą jest co PCRE pasuje.
[...]
\ X rozszerzony ciąg Unicode
[...]
Polecenie \ X ucieczka dopasowuje dowolną liczbę znaków Unicode, które tworzą rozszerzony Sekwencja Unicode.\ X jest równoważne
(?>\PM\pM*)
Oznacza to, że pasuje do charakteru bez „znaku” własności, następuje zero lub więcej znaków z „znak” własności i traktuje sekwencję jak grupa Atomowej (patrz poniżej). Znaki z właściwością "znacznik" są zwykle akcentami, które wpływają na poprzedni znak . Żaden z nich nie ma punktów kodowych mniejszych niż 256, więc w trybie 8-bitowy tryb inny niż UTF-8 \ X pasuje do dowolnego znaku.
Należy zauważyć, że ostatnie wersje Perla zmieniły \ X, aby odpowiadać temu, co nazywa Unicode "rozszerzonym klastrem grafem", który ma bardziej skomplikowaną definicję niż .
nowszej wersji PCRE man pages (2015):
Rozszerzone grafem klastry
\X
ucieczka dopasowuje dowolną liczbę znaków Unicode, które tworzą "rozszerzone grafem klaster", i traktuje sekwencję jako grupa atomowa (patrz poniżej). Włącznie wydaniu 8.31, PCRE dopasowane była mowa wcześniej, że była prostsza definicja równoważna
(?>\PM\pM*)
Oznacza to, że pasuje do charakteru bez „znaku” własności, następuje zero lub więcej znaków z właściwość "mark". Znaki z właściwością "znacznik" są zwykle nieprzylegające do spacji. Akcenty, które wpływają na poprzedni znak.
Ta prosta definicja została przedłużona w Unicode zawierać więcej skomplikowana rodzaje znaku złożonego dając każdemu charakterem grafem właściwości niszczące i tworzenie reguł, które używają tych właściwości zdefiniować granice udzielonych grafem klastrów. W wersjach PCRE późniejszych niż 8,31, \X
pasuje jeden z tych klastrów.
\X
zawsze dopasowuje co najmniej jeden znak. Następnie decyduje dodać dodatkowe znaki według następujących zasad kończących klastra:
kończy się na końcu napisu.
Nie należy kończyć między CR i LF; w przeciwnym razie kończy się po dowolnym znaku kontrolnym.
Nie łam się sekwencji sylabowych Hangul (scenariusz koreański). Znaki Hangul mają pięć typów: L, V, T, LV i LVT. Po znaku L może wystąpić znak L, V, LV lub LVT; Po znaku V LV lub może następować znak V lub T; znak LVT lub T może być poprzedzony tylko znakiem T.
Nie należy kończyć przed rozszerzeniem znaków lub znaków odstępu. Znaki z właściwością "mark" mają zawsze właściwość łamania grafiki "extend" .
Nie kończą się po znakach poprzedzających.
W przeciwnym razie zakończ klaster.