Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在字符串开头使用表情符号时,正则表达式无法正常工作_Php_Regex - Fatal编程技术网

Php 在字符串开头使用表情符号时,正则表达式无法正常工作

Php 在字符串开头使用表情符号时,正则表达式无法正常工作,php,regex,Php,Regex,我的代码是用PHP编写的。我试图在我的数据库中存储我发送的电子邮件的主题,只是在我删除了这些电子邮件主题行中包含的表情符号之后。我创建了这个正则表达式: $cleansubject = preg_replace("/[^a-zA-Z0-9\s]/", "", $subject); 当我将表情符号放在字符串末尾时,它会起作用,例如: 但是如果我在字符串开头有表情符号,它就不起作用,条目甚至没有存储在我的数据库中: 您可以在我的正则表达式中找出任何问题来实现我的目标吗 更新1:显然正则表达式很

我的代码是用
PHP
编写的。我试图在我的数据库中存储我发送的电子邮件的主题,只是在我删除了这些电子邮件主题行中包含的表情符号之后。我创建了这个正则表达式:

$cleansubject = preg_replace("/[^a-zA-Z0-9\s]/", "", $subject);
当我将表情符号放在字符串末尾时,它会起作用,例如:

但是如果我在字符串开头有表情符号,它就不起作用,条目甚至没有存储在我的数据库中:

您可以在我的正则表达式中找出任何问题来实现我的目标吗

更新1:显然正则表达式很好:


这可能是编码问题():


echo utf8\u编码('⌨️, 这可能是编码问题():

echo utf8\u编码('⌨️, 向正则表达式中添加,使其将字符串视为UTF-8

$cleansubject = preg_replace("/[^a-zA-Z0-9\s]/u", "", $subject);
或者使用内置函数从字符串中删除Unicode字符,例如、或

向正则表达式中添加,使其将字符串视为UTF-8

$cleansubject = preg_replace("/[^a-zA-Z0-9\s]/u", "", $subject);
或者使用内置函数从字符串中删除Unicode字符,例如、或


在数据库中使用utf8mb4。试试看。它将向您展示表达式对给定字符串的计算方式。@MarkusZeller这正是我试图避免做的。我对在数据库中存储表情不感兴趣。文本足以让我记住我发送的电子邮件。因此我尝试使用正则表达式在将表情符号存储到数据库之前删除表情符号。@MarkusZeller很棒的工具!谢谢。请参阅我的
更新1
。显然我的正则表达式很好。奇怪的问题。可能发生了与正则表达式无关的其他事情。请在数据库中使用utf8mb4。尝试一下。它将显示表达式的内容和方式对给定字符串求值。@MarkusZeller这正是我试图避免做的事情。我对在数据库中存储表情不感兴趣。文本足以让我记住我发送的电子邮件。因此,我尝试在将表情存储到数据库之前使用正则表达式删除表情。@MarkusZeller很棒的工具!谢谢ou.查看我的
更新1
。显然我的正则表达式很好。奇怪的问题。可能发生了与正则表达式无关的其他事情。