2015-09-23 4 views
1

Я хочу удалить последние N символов из строки, если эти символы не являются числовыми буквами.PHP preg_replace последние N символов, если не буквенно-цифровые

Например:

  • TEST. ->TEST
  • TEST2.- ->TEST2
  • TEST_3.,/ ->TEST_3

мне удалось добиться того, что с помощью следующего регулярного выражения, но это работает только для последнего последнего символа (работает, например, 1 выше). Как проверить, если больше, чем просто последний символ соответствует случай ...

/[^a-zA-Z\d\s:]$/ 
+1

Возможно, вы просто отсутствует квантификатор: '/ [^ a-zA-Z \ d \ s:] + $ /'? –

ответ

2

Juat добавить + рядом с классом персонажа, так что он будет соответствовать одному или более (нон буквенно-цифровой или: или пространство) символы существуют в последний раз.

preg_replace('~[^a-zA-Z\d\s:]+$~', '', $str); 
0

Вы можете использовать:

/[^a-zA-Z\d]{1,3}$/g 

{1,3} $ - это диапазон, сколько символов в конце строки не должно быть не алфавитно-цифровой

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