Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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,我的论坛上有一些过滤器,比如:当用户发布“hello”时,过滤器会将单词修改为“ohai!” 但是当用户发布Hello时,过滤器仍然会将单词修改为“ohai!”,而不是“ohai!” 我知道这是使用正则表达式修复的,但我不知道如何修复。如果使用PHP,可以使用ucfirst();(大写第一个字母) 例如: $filter= "ohai"; echo ucfirst($filter); 您可以使正则表达式不区分大小写(因此它将捕获“hello”和“hello”),但我还没有看到一个正则表达式引擎

我的论坛上有一些过滤器,比如:当用户发布“hello”时,过滤器会将单词修改为“ohai!”

但是当用户发布Hello时,过滤器仍然会将单词修改为“ohai!”,而不是“ohai!”


我知道这是使用正则表达式修复的,但我不知道如何修复。

如果使用PHP,可以使用ucfirst();(大写第一个字母)

例如:

$filter= "ohai";
echo ucfirst($filter);

您可以使正则表达式不区分大小写(因此它将捕获“hello”和“hello”),但我还没有看到一个正则表达式引擎能够确定匹配字符串的大小写,然后用相同的大小写替换该字符串。这将需要一些实际的编码(无论你的论坛是用什么编程语言编写的)。或者,您可以有两个正则表达式,其中一个匹配“hello”,另一个匹配“hello”,并相应地替换文本。不过,这会变得非常棘手(包括“hELLO”和“hELLO”等情况,以及……)您使用的是哪种语言……我使用的是PHP,Kusaba X。