在第一次出现像(1-9)之类的数字之前,我试图删除字符串中的所有数据可能是在函数中?在第一次出现数字之前删除所有内容的PHP脚本
例如:
$value = removeEverythingBefore($value, '1-10');
所以,如果我有像“你好,我想统治世界100个小时左右”
我想这个找了好几个第一次出现的一个测试是1
并删除它之前的所有内容。
离开我与100 hours or so
。
在第一次出现像(1-9)之类的数字之前,我试图删除字符串中的所有数据可能是在函数中?在第一次出现数字之前删除所有内容的PHP脚本
例如:
$value = removeEverythingBefore($value, '1-10');
所以,如果我有像“你好,我想统治世界100个小时左右”
我想这个找了好几个第一次出现的一个测试是1
并删除它之前的所有内容。
离开我与100 hours or so
。
如果你想就像你在你的文章中提到要调用的函数,你可以像下面的:
<?php
function removeEverythingBefore($value, $pattern) {
preg_match($pattern, $value, $matches, PREG_OFFSET_CAPTURE);
$initialPosition = $matches[0][1];
return substr($value, $initialPosition);
}
$value = "Hello I want to rule the world in 100 hours or so";
$value = removeEverythingBefore($value, '/[0-9]/');
echo $value; // prints 100 hours or so
这样,您就可以使用相同的功能,以藏汉匹配其他patters。
您可以使用preg_replace
这与正则表达式/([a-z\s]*)(?=\d)/i
这样的:
$string = "Hello I want to rule the world in 100 hours or so";
$newString = preg_replace("/([a-z\s]*)(?=\d)/i", "", $string);
echo $newString; // Outputs "100 hours or so"
你可以看到它this eval.in工作。如果你在一个函数想它,你可以这样做:
function removeEverythingBeforeNumber($string)
{
return preg_replace("/([a-z\s]*)(?=\d)/i", "", $string);
}
$newString = removeEverythingBeforeNumber("Hello I want to rule the world in 100 hours or so");
你应该使用正则表达式。你可以使用'preg_match'或'preg_replace'。 – chris85