Php 保留换行符的正则表达式
我有一个正则表达式,它只允许消息中的某些字符。 我试图实现的是允许换行,这将使用nl2br功能保留 这就是我到目前为止的情况:Php 保留换行符的正则表达式,php,regex,line-breaks,Php,Regex,Line Breaks,我有一个正则表达式,它只允许消息中的某些字符。 我试图实现的是允许换行,这将使用nl2br功能保留 这就是我到目前为止的情况: preg_replace('/[^a-zA-Z0-9ńśćółęążź\ .,-]/','',$message) 据我所知,以下表达式应保留换行符,但将其添加到上述表达式时遇到问题: /(\r|\n|\r\n){2,}/ 您只需要将\r和\n添加到不替换的字符列表中。因此: preg_replace("/[^a-zA-Z0-9ńśćółęążź\ \.,\-\r\n
preg_replace('/[^a-zA-Z0-9ńśćółęążź\ .,-]/','',$message)
据我所知,以下表达式应保留换行符,但将其添加到上述表达式时遇到问题:
/(\r|\n|\r\n){2,}/
您只需要将
\r
和\n
添加到不替换的字符列表中。因此:
preg_replace("/[^a-zA-Z0-9ńśćółęążź\ \.,\-\r\n]/",'',$message)
在上面的表达式中,我还必须将
'
更改为“(以便\r
和\n
被识别),但也必须转义
和-
字符,您只需要将\r
&\n
添加到字符列表中,以避免替换。因此:
preg_replace("/[^a-zA-Z0-9ńśćółęążź\ \.,\-\r\n]/",'',$message)
在上面的表达式中,我还必须将
'
改为“(以便\r
&\n
被识别),但也必须转义
和-
字符,我相信这就是您要寻找的
- 使用preg_quote避免忘记转义某些字符,例如表达式中的“.”。我敢肯定大部分都是坏的
- 使用不区分大小写的“i”修饰符,而不是a-zA-Z
- 正如Ross所说,添加\r和\n
我相信这就是你要找的
- 使用preg_quote避免忘记转义某些字符,例如表达式中的“.”。我敢肯定大部分都是坏的
- 使用不区分大小写的“i”修饰符,而不是a-zA-Z
- 正如Ross所说,添加\r和\n
我将断开字符串并检查每一行,而不是将换行符包含到正则表达式中。我将断开字符串并检查每一行,而不是将换行符包含到正则表达式中。还需要添加全局标志:/[^a-zA-Z0-9ŇśćóŇŇŇŇŇŇŇŇŇŇŇŇŇŇŇŇŇŇ,您是对的)pregèu replace()默认情况下将执行全局替换,而g在PCRE中不是有效的修饰符(regex实现PHP使用)也需要添加全局标志:/[^a-zA-Z0-9êśćó322;èèèèèèèèèèèèèèèèèèèè,并且g在PCRE中不是有效的修饰符(PHP使用的正则表达式实现)