正则表达式 - 字符类减法

时间:2015-07-16 13:53:03

标签: php regex preg-match-all

我希望匹配空格和除.之外的任何标点字符。

我正在尝试这个: ([^\pP-[\.]\pZ])

但是没有用。我需要使用捕获组。

2 个答案:

答案 0 :(得分:3)

字符类减法不是PCRE功能(PHP正则表达式)。

您可以改为编写:choices (添加([^\PP.]|\s)修饰符以将u字符类扩展到所有unicode空格并将字符串读取为UTF8 )

这个想法是使用一种双重否定来排除点。 \s就是不是标点字符。 \PP匹配所有标点字符(例如[^\PP]),但这次您可以使用字符类否定\pP来排除您想要的内容。

答案 1 :(得分:0)

这将获得空白和所有符号/标点符号。

[^.\w]

http://regexr.com/3bddt

^用于排除其后面的字符。所以[^。\ w]说排除。和所有单词字符,只留下符号和标点符号