使用正则表达式从句子中删除非字母单词

Remove non-alphabetic words from a sentence using regex

是否可以删除句子中不包含 a-z 字母的单词?我考虑过消极的环顾四周,但没有成功。

例如,

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

变成

This is a 1-2-a3 sample sentence

假设除破折号外的所有其他标点符号都已删除。

谢谢!

下面的正则表达式将匹配那些不包含字母的单词。

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

DEMO

只需将那些匹配的词替换为空字符串即可获得所需的输出。 (?<!\S) negative lookbehind 断言匹配之前不会有非 space 字符。 (?!\S) 否定前瞻断言匹配后不会跟非 space 字符。