0

8が有効なPCREであり、\p{Po}グループと他の多くのものを一致させようとしています。

アンパサンド文字を除外したい。特定のキャラクターをクラスから除外するにはどうすればよいですか?

-- lua btw    
local utf8_general_punctuation_reg = "[\\p{Po}\\p{Cc}\\p{Cs}\\p{Pc}\\p{Pe}\\p{Ps}\\p{Pf}\\p{Pi}\\p{Sm}\\x{2100}-\\x{2123}\\x{2600}-\\x{26ff}]+"

前もって感謝します!

ところで、\p{Po}はutf8用ですhttp://www.fileformat.info/info/unicode/category/Po/list.htm

以下の答えからうまくいくものを追加するだけです:

local utf8_general_punctuation_reg = "[\\p{Po}\\p{Cc}\\p{Cs}\\p{Pc}\\p{Pe}\\p{Ps}\\p{Pf}\\p{Pi}\\p{Sm}\\x{2100}-\\x{2123}\\x{2600}-\\x{26ff}]+(?<!(&|\\.|:))"
4

1 に答える 1

1

これにはネガティブルックビハインドを使用できます。私はpcre構文に精通していません。

[abc](?<!b)

その正規表現は最初にa、b、またはcを許可し、Unicodeプロパティが異なる文字を許可していることを確認してから、負の後読みでb文字を許可しません。

上記の正規表現は、最終的にaとcに一致しますが、bには一致しません。

于 2012-05-28T18:44:00.387 に答える