PDF内のテキストを照合するために正規表現を動的に編集しています。これには、一部の行の末尾にハイフンを含めることができます。
例:
ソース文字列:
"consecuti?vely"
ルールを置き換える:
.Replace("cuti?",@"cuti?(-\s+)?")
.Replace("con",@"con(-\s+)?")
.Replace("consecu",@"consecu(-\s+)?")
必要な出力:
"con(-\s+)?secu(-\s+)?ti?(-\s+)?vely"
置換ルールは動的に作成されます。これは問題を引き起こす単なる例です。
このような複数の置換を実行するための最良の解決策は何ですか?これにより、目的の出力が生成されますか?
これまでのところ、Regex.Replaceを使用して単語を圧縮し、オプション(-\ s +)に置き換えることを考えましたか?各文字の間にありますが、置換する単語には正規表現のコンテキストで特別な意味の文字がすでに含まれているため、これは機能しません。
編集:私の現在のコードは、上記の例のように置換ルールが重複していると機能しません
private string ModifyRegexToAcceptHyphensOfCurrentPage(string regex, int searchedPage)
{
var originalTextOfThePage = mPagesNotModified[searchedPage];
var hyphenatedParts = Regex.Matches(originalTextOfThePage, @"\w+\-\s");
for (int i = 0; i < hyphenatedParts.Count; i++)
{
var partBeforeHyphen = String.Concat(hyphenatedParts[i].Value.TakeWhile(c => c != '-'));
regex = regex.Replace(partBeforeHyphen, partBeforeHyphen + @"(-\s+)?");
}
return regex;
}