Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.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/9/javascript/470.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_Javascript_Regex - Fatal编程技术网

在Php代码中使用正则表达式

在Php代码中使用正则表达式,php,javascript,regex,Php,Javascript,Regex,嗨,这是我的正则表达式代码 var concatedString = concatedSubstring.replace(/\//g, '-').replace(/([0-9])([a-zA- Z])/g,"$1-$2").replace(/[A-Za-z]/g, function(c){ return c.toUpperCase().charCodeAt(0)-64; 我正在尝试将它转换为PHP正则表达式,我所做的是 $pin = preg_replac

嗨,这是我的正则表达式代码

 var concatedString = concatedSubstring.replace(/\//g, '-').replace(/([0-9])([a-zA-     Z])/g,"$1-$2").replace(/[A-Za-z]/g, function(c){
            return c.toUpperCase().charCodeAt(0)-64; 
我正在尝试将它转换为PHP正则表达式,我所做的是

 $pin = preg_replace('{/\//g}', '-', $pin);
             $pin = preg_replace('{/([0-9])([a-zA-Z])/g}','$1-$2', $pin);
             $pin3 = preg_replace('{/[A-Za-z]/g}', strtoupper($pin), $pin );
             echo $pin3;

我不能再进步了。

你不需要那些
{}
来处理所有事情

此外,在上一次的
preg_replace
中,您正在匹配
[a-zA-Z]
并用大写字母替换,但如果它首先是大写字母,则无需替换:

$pin = preg_replace('/\//', '-', $pin);
$pin = preg_replace('/([0-9])([a-zA-Z])/','$1-$2', $pin);
// only need to convert lowercase to uppercase.
$pin3 = preg_replace('/[a-z]/', strtoupper($pin), $pin ); 
echo $pin3;

你不需要这些
{}
围绕每件事

此外,在上一次的
preg_replace
中,您正在匹配
[a-zA-Z]
并用大写字母替换,但如果它首先是大写字母,则无需替换:

$pin = preg_replace('/\//', '-', $pin);
$pin = preg_replace('/([0-9])([a-zA-Z])/','$1-$2', $pin);
// only need to convert lowercase to uppercase.
$pin3 = preg_replace('/[a-z]/', strtoupper($pin), $pin ); 
echo $pin3;

首先,你的正则表达式周围不需要花括号。第二,strtoupper不会像你那样工作,但你离它不远了

<?php
$pin = preg_replace('/\//', '-', $pin);
$pin = preg_replace('/([0-9])([a-zA-Z])/','$1-$2', $pin);
$pin3 = strtoupper($pin);
echo $pin3;
?>

首先,您不需要在正则表达式周围使用大括号。第二,strtoupper不会像你那样工作,但你离它不远了

<?php
$pin = preg_replace('/\//', '-', $pin);
$pin = preg_replace('/([0-9])([a-zA-Z])/','$1-$2', $pin);
$pin3 = strtoupper($pin);
echo $pin3;
?>


你试过去掉正则表达式中的“{”和“}”吗?你试过去掉正则表达式中的“{”和“}”吗?preg_replace()[function.preg replace]:未知修饰符“g”我在使用你的代码后得到了这个。我没有仔细看修饰符,但是这可能会帮助您:在
preg\u replace
中没有
g
修饰符。谢谢,忘记了
preg\u replace
是全局的。将编辑答案。preg_replace()[function.preg replace]:未知修饰符“g”:我在使用您的代码后得到了这个修饰符。我没有仔细查看修饰符,但这可能会帮助您:在
preg_replace
中没有
g
修饰符。谢谢,忘记了
preg_replace
是全局的。将编辑答案。