我有以下字符串,其中每个单词都有一个POS(part-of-speech)标记:
The/DT suburb/NN of/IN Saffron/NNP Park/NNP lay/VBD on/IN the/DT sunset/JJ side/NN of/IN London/NNP ,/, as/IN red/JJ and/CC ragged/VBD as/IN a/DT cloud/NN of/IN sunset/NN ./.
如何使用C#代码中的RegEx一次删除每个POS标记(即/DT
,/NN
,/IN
,...,/.
)?
答案 0 :(得分:1)
答案 1 :(得分:0)
我想“立刻”是指使用Regex.Replace
一次调用。您可以使用以下正则表达式安全地删除它们:
/(?:[.,]|\p{Lu}+\b)
在C#正则表达式中,您不必转义/
。
如果您想在/
之后删除任何标点符号,您可以使用:
/(?:\p{P}|\p{Lu}+\b)
您需要使用string.Empty
作为替换字符串。
var input = "The/DT suburb/NN of/IN Saffron/NNP Park/NNP lay/VBD on/IN the/DT sunset/JJ side/NN of/IN London/NNP ,/, as/IN red/JJ and/CC ragged/VBD as/IN a/DT cloud/NN of/IN sunset/NN ./.";
var rgxx = new Regex(@"/(?:[.,]|\p{Lu}+\b)");
var result = rgxx.Replace(input, string.Empty);
输出: