我四处寻找并找不到针对这个特定案例的简单解决方案。我不是PHP专业人员,我还在学习。
我正在对用文本写的数字执行字符串搜索和替换,以将它们转换回数字。一个小例子如下所示:
$n_0='twenty one'; $n_1='twenty two'; $n_2='twenty three'; $n_3='twenty four'; $n_4='twenty five'; $n_5='twenty six'; $n_6='twenty seven'; $n_7='twenty eight'; $n_8='twenty nine'; $n_9='thirty one';
$r_0='21'; $r_1='22'; $r_2='23'; $r_3='24'; $r_4='25'; $r_5='26'; $r_6='27'; $r_7='28'; $r_8='29'; $r_9='31';
$search = array($n_0, $n_1, $n_2, $n_3, $n_4, $n_5, $n_6, $n_7, $n_8, $n_9, $n_10, $n_11, $n_12, $n_13, $n_14, $n_15, $n_16, $n_17, $n_18, $n_19, $n_20, $n_21, $n_22);
$replace = array($r_0, $r_1, $r_2, $r_3, $r_4, $r_5, $r_6, $r_7, $r_8, $r_9, $r_10, $r_11, $r_12, $r_13, $r_14, $r_15, $r_16, $r_17, $r_18, $r_19, $r_20, $r_21, $r_22);
$string = str_ireplace($search, $replace, $string);
有没有办法定义一个"单个" PHP变量,以便找到所有给定的条件?
例如:
Search for: $n_0='twenty???one';
Replace with: $r_0 = '21';
其中 ??? 是" 20"之间的一些通配符代码。和#34;一个"这将使其适用于以下所有搜索案例。
搜索:
$n_0='twenty one';
$n_0='twenty, one';
$n_0='twenty,one';
$n_0='twenty-one';
$n_0='twenty:one';
$n_0='twenty_one';
$n_0='twenty*one';
$n_0='twenty(one';
$n_0='twenty)one';
$n_0='twentyone';
提前致谢。
答案 0 :(得分:1)
$n_0 = '/twenty[-\s,:_()*]*one/';
...
preg_replace($search, $replace, $string);
答案 1 :(得分:0)
试试这个:
$pattern = array('/twenty[^a-zA-Z]*?one/','/twenty[^a-zA-Z]*?two/');
$replace = array('21','22');
$result = preg_replace($pattern, $replace, "I love twentyone but really love twenty238two");
echo $result;
答案 2 :(得分:0)
以下正则表达式将执行:
preg_replace('/twenty(?:[-:_\*\(\)]|,? ?)one/', '21', $n_0);
它的作用是: