我真正的问题是关于波斯语(从右到左方向),但为了简化,我把英文版本写在前面:
我有这个字符串:
$str = 'it is a test, also i like this word: "italic"';
现在我要删除单词开头的所有i
字符。像这样:
$newstr = 't s a test, also like this word: "italic"';
这也是我的真实版本:
$str = 'امروز هوا خوب است ولی دیروز خوب نبود و ویران کننده بود';
我想要这样:(我想要删除单词开头的所有و
字符。应该注意的是,正如我所说,波斯语从右开始)
$newstr = 'امروز هوا خوب است لی دیروز خوب نبود یران کننده بود';
这是我的尝试:
echo preg_replace('/و/u', '', $str);
//=> امرز ها خب است لی دیرز خب نبد یران کننده بد
如你所见,我需要定义只是删除و
字符,如果它在单词的开头。我该怎么做呢?
注意: '/'bو/u'
不工作,因为波斯语从右侧开始。
像
/(?<=^|'s)i/
或
/(?<=^|'s)و/
检测前面有start of line
或space
的i
/و
。或者如果从右到左让它反过来工作(lookahead)
/i(?=$|'s)/
问候。