Как убрать 2 последних символа с preg_replace? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть код вроде: 784XX.XX может быть символом или числом, и мне нужно выражение, чтобы удалить последние 2 символа (XX), используя (и только) preg_replace.

Как я могу это сделать?

Например, на выходе:

782A3 is 782,

0012122 is 00121,

76542A is 7654,

333333CD is 333333,

Ответы [ 2 ]

1 голос
/ 07 июня 2019

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

(.+)?(..)

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

(.+)

Демо

$re = '/(.+)?(..)/m';
$str = '782A3
0012122
76542A
333333CD';
$subst = '$1';

$result = preg_replace($re, $subst, $str);

echo $result;

Схема RegEx

jex.im визуализирует регулярные выражения:

enter image description here

Советы

AbraCadaver советы вкомментарий гораздо лучше: 1027

substr('784XX', 0, -2);
1 голос
/ 07 июня 2019

Вы можете использовать функцию substr.

Но если вы будете использовать preg_replace, вы можете сделать это:

$val = preg_replace('/[\w\d]{2}$/', '', $val);

...