2015-01-30 2 views
0

Можно ли удалить слова в предложении, которое не содержит букв -z? Я думал о негативном взгляде вокруг, но не был успешным.Удалить неалфавитные слова из предложения с использованием regex

Например,

This is a 1-2-a3 sample 12 -- 7-8 sentence 

становится

This is a 1-2-a3 sample sentence 

принимает на себя все другие знаки препинания были удалены, за исключением тире.

Спасибо!

ответ

1

Ниже регулярное выражение будет соответствовать тем словам, которые не будут содержать алфавит.

(?<!\S)[^a-zA-Z\s]+(?!\S) 

DEMO

Просто замените эти совпавшие слова с пустой строкой, чтобы получить нужный выход. (?<!\S) отрицательный lookbehind, который утверждает, что совпадению не будет предшествовать непространственный символ. (?!\S) отрицательный lookahead, который утверждает, что за матчем не будет следовать непространственный символ.

+0

используйте этот '\ s * (?

+0

В чем разница между '(? = \ s)' и '(?! \ S)'? Кроме того, не будут ли границы слов проще? – cbreezier

+0

нет, граница слов будет соответствовать строке '7-8: b'. –

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