我将如何删除单词开头的所有特殊字符?
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);
看来你需要这样的东西\x{627}\x{6CC}\x{640}?
我有这样的波斯语文本:
$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);
看来你需要这样的东西\x{627}\x{6CC}\x{640}?