如何删除单词开头的所有特殊字符?

时间:2015-10-19 22:36:41

标签: php regex persian

我有这样的波斯文:

$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';

我该怎么做?

2 个答案:

答案 0 :(得分:0)

这个问题对我来说有点困难,但是你的正则表达的几个部分可能会阻碍你:

  • ^ - anchors匹配字符串的开头
  • \u - 是PCRE不支持的语法,您可能打算在分隔符/u之后使用u来打开utf-8处理。

进行这些更改会给出:

echo preg_replace('/ای/u', '', $str);

输出:

ن یک متن تست است. نجا ران است

要使其仅在单词的开头匹配,请使用word boundary \b

echo preg_replace('/\bای/u', '', $str);

working demo

答案 1 :(得分:0)

看起来你需要像lapply()

这样的东西