如果是特定字符,如何选择单词的所有开头字符?

时间:2015-10-20 09:43:18

标签: php regex string

我真正的问题是关于波斯语(从右到左的方向),但为简化起见,我首先写的是英文版:

我有这个字符串:

$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'不起作用,因为波斯人从右侧开始。

1 个答案:

答案 0 :(得分:2)

如何使用lookbehind如

/(?<=^|\s)i/

/(?<=^|\s)و/

检测以iو开头的start of line / space。或者,如果从右到左使其相反(前瞻)

/i(?=$|\s)/

问候。