Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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_String - Fatal编程技术网

Php 在列表中的时间字符串之间插入连字符

Php 在列表中的时间字符串之间插入连字符,php,regex,string,Php,Regex,String,我需要一些关于格式化函数的帮助。我需要能够接受输入函数参数并将字符串格式化为其他格式。以下是我的选择: 7am7pm 10am10pm OFF 因此,根据所选内容,我希望正则表达式满足以下输出标准: 7am-7pm 10am-10pm OFF 换句话说,我需要在时间和原始时间之间插入一个连字符,可以是[0-9]{2}或[0-9]{1},所以我猜测类似于[0-9]{1,2},但我不确定如何创建函数并在PHP中使用它。试试看 preg_replace("/(\d{1,2}(am|pm))(\d{

我需要一些关于格式化函数的帮助。我需要能够接受输入函数参数并将字符串格式化为其他格式。以下是我的选择:

7am7pm
10am10pm
OFF
因此,根据所选内容,我希望正则表达式满足以下输出标准:

7am-7pm
10am-10pm
OFF
换句话说,我需要在时间和原始时间之间插入一个连字符,可以是[0-9]{2}或[0-9]{1},所以我猜测类似于[0-9]{1,2},但我不确定如何创建函数并在PHP中使用它。

试试看

preg_replace("/(\d{1,2}(am|pm))(\d{1,2}(am|pm))/", "$1-$3", $string);
演示:

试试看

preg_replace("/(\d{1,2}(am|pm))(\d{1,2}(am|pm))/", "$1-$3", $string);

演示:

这应该可以为您处理时间,您可以通过一个简单的if语句来完成:

$output = preg_replace('/^([0-9]{1,2}(am|pm))-?([0-9]{1,2}(am|pm))$/i', '$1-$3', $input);

这将为您解决时间问题,您可以使用一个简单的if语句:

$output = preg_replace('/^([0-9]{1,2}(am|pm))-?([0-9]{1,2}(am|pm))$/i', '$1-$3', $input);
这是一个使用的版本,因此它只需注入一个字符:

return preg_replace('/(?<=[a-z])(?=\d)/', "-", $arg);
它只查找字符串中字母所在的位置?这是一个使用的版本,因此它只需插入一个字符:

return preg_replace('/(?<=[a-z])(?=\d)/', "-", $arg);
它只在字符串中查找字母所在的位置?这个怎么样:

function format_date($date)
{
if( $date == 'off' ) return 'off';
return preg_replace( '/^(\d{1,2}\w{2})(\d{1,2}\w{2})$/' , '${1}-${2}' , $date );
}
我想你是说输入看起来像第一个框,格式应该像第二个框?

这个怎么样:

function format_date($date)
{
if( $date == 'off' ) return 'off';
return preg_replace( '/^(\d{1,2}\w{2})(\d{1,2}\w{2})$/' , '${1}-${2}' , $date );
}

我想你是说输入看起来像第一个框,格式应该像第二个框?

你会遇到12:20这样的时间吗?或者这些总是在时间上?查看一些有助于设计简单正则表达式的工具。你会遇到像下午12:20这样的时间吗?或者这些工具总是在工作时间?查看一些有助于设计简单正则表达式的工具。[a-z]可以被m-love短正则表达式取代;[a-z]可以替换为m-love短正则表达式;