1

私のHaskellアプリケーションは入力をByteStringのリストとして読み取り、Text.Regex.Posix.ByteString.regexecを使用して一致を見つけています。一部の入力には文字コード 253 (IBM PC 文字セットの 1/2 記号) があり、パターン「.」のようです。(つまり、ドット、「任意の文字に一致」) は一致しません。それを一致させる方法はありますか?

4

2 に答える 2

0

これは、Windows Haskell インストールで機能します。

> length $ ((pack ['\1'..'\253']) =~ "." :: [[ByteString]])
252

つまり、ドットはコード 253 を含む範囲内のすべての文字に一致します。

ライブラリは、基本的な posix 正規表現マッチャーを呼び出すことに注意してください。通常、glibc.

したがって、あなたが抱えている問題は、その正確な基礎となるc実装にあると思います。

Text.Regex.TDFA.ByteStringこの場合、すべてHaskellにあるため、次のようなものがより明確な動作を提供する可能性がありますか?

于 2015-03-26T16:08:18.937 に答える