如何使用正则表达式删除句子中的标点符号

时间:2012-01-19 06:02:57

标签: java regex

我试图从文件中取出所有有效的单词。有效单词被定义为正常字符,可以这样显示:

don't won't can't

我必须忽略逗号句号和感叹号。

我已经得到了表达式来获取字符,但现在它不会得到像don't and can't or won't这样的单词。

这是我正在使用"[^A-Za-z]+"的表达式,我尝试了"\'[^A-Za-z]+",但这会打破并允许所有字符。有没有人知道我可以用什么来获得正常的词语,包括不会,也不会和不能和这样的词语。

非常感谢

3 个答案:

答案 0 :(得分:1)

[^A-Za-z]意味着任何与这些角色范围不匹配的东西!试试这个:

[A-Za-z']

您可能需要转义单引号,在这种情况下,您可能需要转义逃避它的斜杠:

[A-Za-z\\']

答案 1 :(得分:0)

另一种方式(使用缩写)是:\b[\w']+

答案 2 :(得分:0)

这将匹配任何语言的字母并排除数字。

\b[\p{L}\!\'\?]+

这是正则表达式的一个非常好的资源。 http://www.regular-expressions.info/