我有这样的波斯文:
$str = 'این یک متن تست است. اینجا ایران است';
这也是我要删除的内容(如果它在第一个单词中,基本上第一个定义是在空格之后):ای
。
所以我想要这个输出:
$newstr: 'ن یک متن تست است. نجا ران است';
我尝试的只是第一个字:
echo $newstr = preg_replace('/^ای\u/', '', $str);
// output: ن یک متن تست است. اینجا ایران است
无论如何,我怎样才能在第一句话中实现它?
(应该注意ای
与ایـ
语义视角相同,我知道,存在明显差异)
编辑:以下是我的英文版问题:
$str = 'it is a test, i like that';
现在我想要这样:(删除每个单词中第一个中的所有i
)
$newstr = 't s a test, like that';
我该怎么做?
答案 0 :(得分:0)
这个问题对我来说有点困难,但是你的正则表达的几个部分可能会阻碍你:
^
- anchors匹配字符串的开头\u
- 是PCRE不支持的语法,您可能打算在分隔符/u
之后使用u来打开utf-8处理。进行这些更改会给出:
echo preg_replace('/ای/u', '', $str);
输出:
ن یک متن تست است. نجا ران است
要使其仅在单词的开头匹配,请使用word boundary \b
echo preg_replace('/\bای/u', '', $str);
答案 1 :(得分:0)
看起来你需要像lapply()