C#正则表达式查找包含一个或多个匹配项的单词

时间:2012-01-02 20:35:35

标签: c# regex

我有一个德国文本的大数据集,它是由一些编码问题生成的,我无法从头开始重新创建数据集。所以,我发现在德语特殊字符应该是字符串“??”的情况下出现在它的位置(我猜这是因为将UTF8视为Ascii或其他类似的东西)。

数据集采用一系列包含约180,000行的CSV文件的形式。我的解决方案是识别包含“??”的所有唯一单词并基本上做一个字符串替换。幸运的是,没有那么多独特的单词可以替换(大约5%的数据集样本中有18个单词)。

我设法得到一个正则表达式,它匹配包含“??”的一个实例的单词 - 问题是它拆分了包含多个“??”实例的单词分成两部分。

在这个阶段,我有点达到我的正则表达知识的极限。我想这需要做一些预测,但我不知道如何去做。

这是我的正则表达式:"@"(?<TM>\w*\?\?\w*)"。 这是一个示例字符串(请注意,第二个单词将分为两个匹配项:"hellgr??n Hei??folienflachpr??gung Folienpr??gung,"

1 个答案:

答案 0 :(得分:2)

(?<TM>\w*(\?\?\w*)+)

重复包含??的部分至少一次。