0

C# で PDF を XML に解析しようとしていますが、次のような見出しを抽出したいと考えています。私のファイルからローマ数字で分類されたページレイアウト。このような文字列に一致する正規表現を書きたいのですが、いくつか試してみましたがうまくいきません。誰か助けてもらえますか?

4

3 に答える 3

1

これはあなたが必要とすることをするはずです:

[IVXLCDM]+. [AZ ]+

ここで述べたように:

\. ピリオド文字は正規表現構文の特殊文字 (任意の文字に一致することを意味する) であるため、ピリオドに一致します。

一方、文字列にローマ数字と見出し名のみが含まれていることを確認したい場合は、次のようにします。

^[IVXLCDM]+\. [A-Z ]+$

^とは$アンカーと呼ばれます。は^正規表現エンジンに文字列の最初から照合を開始するように$指示し、 は正規表現エンジンに文字列の最後で照合を停止するように指示します。ローマ数字の完全なリストはウィキペディアから入手できます

于 2011-07-24T08:08:49.957 に答える
1

これはほとんどうまくいくはずです:

^[IVXLCDM]+\. [^\p{Ll}]+?$

これは、数字と記号を含むヘッダーに一致しますが、Unicode の小文字を明示的に除外します。

また、次のようにオプション RegexOptions.Multiline を使用していることを確認してください: (inp入力文字列はどこにありますか)

foreach (var match in
    Regex.Matches(inp,
        @"^[IVXLCDM]+\. [^\p{Ll}]+?$",
        RegexOptions.Multiline))
    Console.WriteLine(match.Value);
于 2011-07-24T13:41:53.420 に答える
1

これが簡単なものです

\b[IVX]+. [AZ ]+

于 2011-07-24T08:02:25.930 に答える