PHP регулярное выражение совпадения preg со странным символом из шведского алфавита sh - PullRequest
1 голос
/ 16 июня 2020

В php 7.3.14 У меня есть имя строки Brick Red 140. Из этой строки я хочу получить все без di git, я работаю с языком swedi sh, и для этого я дополнил этот preg_match_all

preg_match_all('/[a-zA-Z ¤æøĂÂéëäöåÉÄÖÅ]+/',$color,$matches)

, и в некоторых случаях я столкнулся со странной ошибкой, в $matches я столкнулся с некодированным символом

$matches = {array} [1]
 0 = {array} [1]
  0 = "Brick Red�"

после теста, я выполнил utf8_encode

utf8_encode($mat[0][0])

и получил Brick RedÂ. Почему пробел трансформируется в Â и как правильно разрешить? Может быть, изменить обычное выражение или что-то в этом роде?

1 Ответ

2 голосов
/ 16 июня 2020

Я не могу понять, почему в ваших совпадениях есть этот странный персонаж. Я могу только догадываться, что это связано с вашим регулярным выражением.

Но если вы хотите получить все строки, которые не являются di git, вы можете использовать это:

preg_match_all('/[^\d]+/',$color,$matches)

$matches будет содержать:

['Brick Red ']

Если вам нужны все слова отдельно, вы можете использовать:

preg_match_all('/[^\d\s]+/',$color,$matches)

$matches будет содержать:

['Brick', 'Red']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...