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

How would I remove all special characters in beginning of the words?

我有这样的波斯语文本:

$str = 'این یک متن تست است. اینجا ایران است';

这也是我要删除的(如果它在单词的第一个,基本上第一个定义在space之后):ای.

所以我想要这个输出:

$newstr: 'ن یک متن تست است. نجا ران است';

我试过的只是第一个字:

echo $newstr = preg_replace('/^ای\u/', '', $str);

  // output: ن یک متن تست است. اینجا ایران است

不管怎样,我怎样才能在第一句话中实现它?

(需要注意的是ایایـ语义透视是一样的,我知道,有明显区别)


编辑: 这是我的英文版问题:

$str = 'it is a test, i like that';

现在我想要这个:(删除每个单词第一个中的所有 i

$newstr = 't s a test, like that';

我该怎么做?

这个问题对我来说有点难以理解,但你的正则表达式中有几个部分可能是阻碍你的原因:

  • ^ - anchors 匹配到字符串的开头
  • \u - 是 PCRE 不支持的语法,您可能打算将 u 放在定界符 /u 之后以打开 utf-8 处理。

进行这些更改会得到:

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

输出:

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

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

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

working demo

看来你需要这样的东西\x{627}\x{6CC}\x{640}?