我真正的问题是关于波斯语(从右到左的方向),但为简化起见,我首先写的是英文版:
我有这个字符串:
$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'
不起作用,因为波斯人从右侧开始。
答案 0 :(得分:2)
如何使用lookbehind如
/(?<=^|\s)i/
或
/(?<=^|\s)و/
检测以i
或و
开头的start of line
/ space
。或者,如果从右到左使其相反(前瞻)
/i(?=$|\s)/
问候。