0

我正在尝试对一串英文文本进行标记,以便我可以得到一个没有任何标点符号的单词序列,但同时我想留下收缩(如don'twon't)和所有格名词(如史蒂夫德鲁的)完好无损。我正在尝试使用正则表达式来解决这个问题,但我对它们还是陌生的。

基本上,我想要一个正则表达式,它将匹配所有非字母数字字符序列,除了被字母数字字符包围的撇号,例如前面提到的示例。可以用正则表达式做到这一点吗?

4

2 回答 2

0

我不明白你的正则表达式试图匹配什么,但我认为这将符合你想要的:

(?i)(?<=^|\s)([a-z]+('[a-z]*)?|'[a-z]+)(?=\s|$)

这匹配可以选择以撇号后跟 0-n 个字母或撇号后跟字母结尾的“单词”,这匹配以下边缘情况:

  • 事物
  • 杰克的
  • 罗斯
  • 蒂斯
于 2013-10-30T03:38:34.803 回答
0

你的问题对我来说不是很清楚。但如果我解释正确,下面的正则表达式应该可以完成这项工作

\b[\w']+\b

正则表达式101演示

于 2013-10-30T03:40:26.650 回答