2015-08-25 3 views
1

Мне нужно разделить на символы, которые не являются \p{L} или -. Я немного смущен. \P{L}|[^-], очевидно, не будет работать, поскольку все будет соответствовать [^-]. Я не знаю, как разместить класс Unicode внутри []. Lookahead/lookbehind будет защелкнуть предыдущий/следующий символ.Как preg_split() на небукте/не-тире?

Другими словами, мне нужно разделить foo-bar;dásh на ['foo-bar', 'dásh'].

ответ

1

На самом деле вы можете разделить на:

/[^\p{L}-]/u 

Это будет соответствовать любому символу, который не является буквой юникода, а не тире.

RegEx Demo

+0

Huh! http://php.net/manual/en/regexp.reference.character-classes.php даже не упоминает слово Unicode. – chx

+2

http://php.net/manual/en/regexp.reference.unicode.php – AbraCadaver

+1

И эта страница не упоминает классы символов ... I [добавлено] (http://svn.php.net/viewvc/ phpdoc/en/trunk/reference/pcre/pattern.syntax.xml? annotate = 337628 & pathrev = 337628 # l1274) на странице классов персонажей на данный момент, мы можем записаться на странице Юникода, если захотим. – chx

Смежные вопросы