Я хочу заменить несколько символов в строке с другими символами, т.е. сказать, <
к a
, >
к b
, !
к c
, $
к d
и т.д. Я хочу, чтобы достичь этой цели, используя preg_replace
в PHP. Могу ли я сделать это только в одной строке кода, или я должен пойти для разрыва строки, создания массива, а затем заменить его?Как заменить несколько символов на несколько символов в php?
ответ
Почему вы хотите использовать регулярное выражение для этого? просто используйте str_replace, что намного быстрее.
$replace = str_replace(array('<', '>', '!'), array('a', 'b', 'c'), $text);
Использование strtr
, который предназначен для этого вида перевода символов:
<?php
$string = '<<!!';
echo strtr($string, '<>!$', 'abcd');
// Output: aacc
Вы можете использовать простую замену, в вашем случае регулярного выражения будет излишними. Например:
$result = strtr($data, [
'<' => 'a',
'>' => 'b',
'!' => 'c',
//e t.c.
]);
Alternative бы str_replace()
, но я думаю, что ассоциативный массив выглядит более удобным для чтения.
Это то, что я сделал бы.
$string = '<>!$';
$string = str_replace('<', 'a', $string);
$string = str_replace('>', 'b', $string);
$string = str_replace('!', 'c', $string);
$string = str_replace('$', 'd', $string);
echo $string; // abcd
@ У Филиппа есть ответ, который лучше подходит :) –
Извините. Кажется, я не объяснил точный сценарий. Я получаю строку из $ _POST, которую я хочу настроить в некоторых местах, то есть от <<до 'ab', '>' до 'cd', '!' to 'ef', ':' to 'gh' и т. д. Мой коллега сказал мне сделать это, используя массивы в preg_replace. Кто-нибудь пробовал это раньше? – Dranzer
@Dranzer Не имеет значения, как вы получаете строку. Использование замены preg является расточительным, поскольку это занимает больше времени. Если это не похоже на «назначение», в котором вам нужно использовать регулярное выражение, использование одного из вышеперечисленных решений будет намного более подходящим для ваших нужд. Попробуй! –
- 1. Regex заменить несколько символов
- 2. jQuery несколько символов заменить
- 3. Заменить несколько символов atomicaly
- 4. Заменить несколько символов в строке
- 5. Как заменить несколько специальных символов на число?
- 6. Как заменить несколько разных символов на пробел?
- 7. Как заменить несколько символов на один?
- 8. Заменить несколько символов в строке на Java
- 9. Заменить несколько символов - регулярное выражение
- 10. Javascript заменить несколько символов сразу
- 11. Как заменить первые несколько символов в java?
- 12. Neo4j Cypher: заменить несколько символов
- 13. vb.net Regex заменить несколько символов
- 14. PHP - str_replace несколько символов
- 15. Как заменить несколько символов в SQL?
- 16. Count несколько символов php
- 17. Как заменить несколько символов в быстром 3
- 18. Как заменить несколько символов в строке?
- 19. Как заменить несколько символов, кроме первого?
- 20. Как заменить несколько последовательных повторяющихся символов
- 21. Swift Заменить несколько символов в строке
- 22. Заменить несколько символов одним символом в C#
- 23. как заменить несколько символов в одной строке, используя php
- 24. Заменить несколько одинаковых символов в массиве char
- 25. Заменить несколько символов в строке (XSLT)
- 26. Заменить несколько одинаковых символов в строке
- 27. Заменить несколько пар символов в строке
- 28. Разбиение на несколько символов
- 29. Заменить несколько символов в строковой переменной (VBA)
- 30. Заменить несколько символов изображениями в JQuery
Что? Я не получил то, что вы на самом деле хотите. –
Почему вы не используете str_replace: http://php.net/str_replace –