Düzenli ifadeler ile Çince karakterler Eşleştirme (php)

2 Cevap php

Eğer benim normal ifadede hata bana gelin misiniz?

/[\x{4e00}-\x{9fa5}]*[.\s]*\[\/m\][\x{4e00}-\x{9fa5}]/u

Benim dize ([\x{4e00}-\x{9fa5}]), herhangi bir karakterin ardından Çinli karakteri ile başlar ve '[/ m]' ve bir başka Çinli karakteri ile biter. Yani dize belki gibi görünebilir:

我... some text goes here (contains any characters including spaces and new lines)... [/m]我

Beklendiği gibi ama ne yazık ki benim normal ifade çalışmıyor.

2 Cevap

Muhtemelen '+' ile ilk '*' yerine istediğiniz gibi size ilk noktada eşleşen en az bir karaktere sahip olmak için bakar ve '\ s' ile karakter grubunu bırakın ve sadece kullanabilirsiniz. ' herhangi bir karakter maç olacak gibi. Bu tam bir hat olacaksa da, ben '^' ile regex başlar ve '$' ile sona erecekti.

[\x{4e00}-\x{9fa5}]+.+\[\/m\][\x{4e00}-\x{9fa5}]

Hangisi açıklamasına maçlar:

[\x{4e00}-\x{9fa5}]+ - 4E00 ve 9FA5 arasında> bir veya daha fazla karakter.

.+ ->, bir veya daha fazla başka karakter

\[\/m\] -> [/ m]

[\x{4e00}-\x{9fa5}] -> 4E00 ve 9FA5 arasında tek karakter