【发布时间】:2015-01-30 02:47:28
【问题描述】:
是否可以删除不包含 a-z 字母的句子中的单词?我曾考虑过消极的环顾四周,但没有成功。
例如,
This is a 1-2-a3 sample 12 -- 7-8 sentence
变成
This is a 1-2-a3 sample sentence
假设除破折号之外的所有其他标点均已删除。
谢谢!
【问题讨论】:
标签: regex regex-negation regex-lookarounds
是否可以删除不包含 a-z 字母的句子中的单词?我曾考虑过消极的环顾四周,但没有成功。
例如,
This is a 1-2-a3 sample 12 -- 7-8 sentence
变成
This is a 1-2-a3 sample sentence
假设除破折号之外的所有其他标点均已删除。
谢谢!
【问题讨论】:
标签: regex regex-negation regex-lookarounds
下面的正则表达式将匹配那些不包含字母的单词。
(?<!\S)[^a-zA-Z\s]+(?!\S)
只需用空字符串替换那些匹配的单词即可获得所需的输出。 (?<!\S) 否定的lookbehind 断言匹配不会以非空格字符开头。 (?!\S) 否定前瞻,断言匹配后不会跟非空格字符。
【讨论】:
\s*(?<!\S)[^a-zA-Z\s]+(?!\S)。 regex101.com/r/zB3uD4/2
(?=\s) 和(?!\S) 有什么区别?另外,单词边界不是更简单吗?
(?=\s) 与行尾存在的字符串不匹配。但它(?!\S) 会匹配。只需使用 [^a-zA-Z\s]+(?!\S) 正则表达式来对抗这个 sentence 7-8 字符串。
pert=T参数。