Php 从字符串中拆分数字和拉丁字母
目前我有一个类似这样的数组Php 从字符串中拆分数字和拉丁字母,php,arrays,split,Php,Arrays,Split,目前我有一个类似这样的数组 [0] => IS-001 開花した才能「篠ノ之 箒」 [0] => 開花した才能「篠ノ之 箒」 从这里,我只想提取IS-001部分,并将日语字符保留为类似的内容 [0] => IS-001 開花した才能「篠ノ之 箒」 [0] => 開花した才能「篠ノ之 箒」 我目前使用的普通preg_split仅用于空白区域,但它似乎在屏幕上有一些问题箒」 将字符放入下一个数组。因此,我决定,如果我能将这些非日语字符拆分出
[0] => IS-001 開花した才能「篠ノ之 箒」
[0] => 開花した才能「篠ノ之 箒」
从这里,我只想提取IS-001部分,并将日语字符保留为类似的内容
[0] => IS-001 開花した才能「篠ノ之 箒」
[0] => 開花した才能「篠ノ之 箒」
我目前使用的普通preg_split仅用于空白区域,但它似乎在屏幕上有一些问题箒」 将字符放入下一个数组。因此,我决定,如果我能将这些非日语字符拆分出来?如果您的字符串在所有情况下都相同,则可以使用explode with limit参数:
$string = 'IS-001 開花した才能「篠ノ之 箒」';
$array = explode(' ', $string, 2);
echo $array[1];
解决这个问题的方法是使用 所以
$char=substr($str,$i,1)代码>将变成$char=mb_substr($str,$i,1,'UTF-8')代码>和strlen($str)
将变成mb\u strlen($str,'UTF-8')
(或)
从字符串中删除拉丁字母和数字
$res = preg_replace('/[a-zA-Z0-9-]+/', '', $str);
echo $res;
试试这个
echo preg_replace('/^[a-zA-Z0-9\-_]+/u','','IS-001 開花した才能「篠ノ之 箒」');
^
在字符串开头断言位置
[a-zA-Z0-9\-\
匹配列表中的单个字符
+
在一次和无限次之间,尽可能多次,根据需要回馈
u修饰符
unicode:模式字符串被视为UTF-16
似乎不起作用,因为它将把我的整个日语替换成完整的汉字。我确实有平假名和片假名两个词。在这种情况下,是否可以只删除字母、数字和-特殊字符?@user1897151正确的术语是:«拉丁字母»。字母表是字符的集合,而不是字符本身。Oups限制应设置为2,而不是1对不起!是的,这很好用。谢谢如果你能告诉我这个正则表达式是做什么用的,可能吗?@user1897151这些日语单词后面也有值吗?如果是,那么您只需从模式中删除该^