18

PDFからHTMLへのOCR変換を経たドキュメントがいくつかあります。そのため、コンバーターが混乱した場所(つまり、楕円など)にランダムなUnicode句読点がたくさん含まれることになりました。また、英語以外の文字も正しく含まれていますが、éなどのアルファベット文字やロシア語文字などがあります...

(任意の言語のアルファベットから)任意のUnicodeアルファベット文字に一致する正規表現を作成する方法はありますか?または、アルファベット以外の文字にのみ一致するものですか?どちらも本当に役に立ち、素晴らしいでしょう。それが何かを変えるなら、私はPerlを使っています。ありがとう!

4

2 に答える 2

36

Unicode 文字のプロパティを確認してください: http://www.regular-expressions.info/unicode.html#prop。あなたが探しているのはおそらく

\p{L}

これは、任意の文字または表意文字に一致します。マーク付きの文字を含めることもできます。

\p{L}\p{M}*

いずれにせよ、最初のリンクには、さまざまなタイプのキャラクター プロパティの詳細がすべて記載されています。

編集: \w が Unicode 文字と一致するかどうかについて説明しているこのスタック オーバーフローの回答も参照してください。彼らは、\p{Word} または \p{Alnum} も使用できることを示唆しています: \w は、Unicode 標準で定義されているすべての英数字と一致しますか?

于 2011-05-14T23:42:05.720 に答える
2

使用している言語によって、正規表現エンジンが Unicode に対応している場合とそうでない場合があります。\p{}存在する場合、プロパティ トークンを認識している場合と認識していない場合があります。もしそうなら、あなたの答えはJan Goyvaerts' regex tutorial のUnicode Characters and Propertiesにあります。

\p{Latin}サポートされている場合は、 を使用して、Unicode Latin ブロックのいずれかを使用する言語からのもの (またはもちろんそうでないもの) をすべて検出できます。

于 2011-05-14T23:46:22.687 に答える