2

我已经使用 PDFBox 将 PDF 文档转换为文本。但是,许多单词用破折号分成两行。

例如,单词Others变为Oth-ers,单词becoming变为be-coming等。

如果我用string.Replace空字符串替换“-”,它会在单词之间用空格分隔。

在 C# 中有没有办法删除单词中间的破折号并将单词的各个部分再次连接成一个单词?

4

2 回答 2

2

我写了这个单元测试,破折号被正确删除。

[TestMethod]
public void ReplaceDashByEmptyString()
{
    string othersWithDash = "Oth-ers";

    string othersWithoutDash = othersWithDash.Replace("-", string.Empty);

    Assert.AreEqual("Others", othersWithoutDash);
}
于 2013-04-04T01:16:27.480 回答
-1

你可以用Regex.Replace这个。

var text =@"Others Oth-ers";
var matches = Regex.Matches(text, @"\w+\-\w+");
foreach(Match dashMatch in matches)
{
    text = Regex.Replace(text, Regex.Escape(dashMatch.Value), dashMatch.Value.Replace("-", string.Empty));
}    
//Then you can have your new test variable
于 2013-04-04T01:24:56.203 回答