Reg exp для замены всего слова, если любое слово содержит любой не буквенно-цифровой символ или пробел - PullRequest
0 голосов
/ 31 мая 2010

1001 * например *

string = "Это очень длинное, длинное! Предложение";

становится

string = "Это длинное предложение";

В основном все не алфавитно-цифровые слова или удаленные, оставляя пробелы в скобках

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 31 мая 2010

Попробуйте это:

preg_replace("/(^|\\s)\\S*?[^ a-zA-Z0-9]\\S*?(\\s|$)/", '$1', $string)
1 голос
/ 31 мая 2010

Я думаю, что-то вроде этого довольно интуитивно понятно:

<?php

$text = "This is a #@^!%$ re@lly long long,long! sentence";
print preg_replace("/\\w*[^\\w\\s]\\w*\\s*/", "", $text);

?>

Вывод ( как видно на ideone.com ):

This is a long sentence

Это работает путем сопоставления любой последовательности \w*, за которой следует [^\w\s] (ни символ слова, ни пробел), а затем любая последовательность \w*\s*. Все, что соответствует этому, может быть удалено, поэтому оно заменяется на "".

Смотри также

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