Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从字符串中拆分数字和拉丁字母_Php_Arrays_Split - Fatal编程技术网

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这些日语单词后面也有值吗?如果是,那么您只需从模式中删除该
^