phppregsplit
1. php拆分字符串
可以用正则和字符串分词~,下面这个是按照逗号或空格分词~
$str = '豆瓣,人人,开心';
$str4 = str_replace(',',',',$str); //将中文逗号转换成英文逗号,很重要
$key = preg_split('/[\s,]+/',$str4); //分词功能
foreach($key as $value){
echo $value;
echo '<br />';
}
2. 探讨PHP函数split()如何使用正则表达式切割字符串
如何使用PHP函数sprintf()将字符串格式化PHP函数preg_split的正确使用方法解读PHP函数explode()的具体使用方法PHP函数implode()与explode()函数的不同PHP类CMS如何自动获取关键字说明array split ( string $pattern, string $string [, int $limit] )提示preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比PHP函数split()更快的替代方案。
3. 用php的 preg_split 函数分割字符串时 出现 乱码
很有意思的问题.
研究了一个多小时,终于找到了一个解决方案.
测试发现,preg_split对中文(多字节)的分隔符处理可能真的存在问题.
原因可能是正则匹配时不能正常分隔一个多字节字符(猜测).
但我实验用半角(英文)的分隔符就工作得很好.
于是
我在处理待分隔的文本前先对文本进行替换,把中文的句点和逗号都替换成英文半角的.然后再使用preg_split,暂时发现工作得不错.
以下是我的测试代码.
<?php
$test = <<<EOF
记者从有关人士处获悉,嫦娥二号发射的各项准备工作全部就绪,昨日经专家组评审,卫星、火箭、发射场、测控等系统均情况正常,具备发射条件。今天起,西昌卫星发射中心的加注手将为火箭加注燃料。
据一位航天专家介绍,因为地球和月球都在转动的缘故,所以地月之间的最佳交汇点每年仅出现3次,而这3次便是发射探月卫星的最佳节点,经过观测,今年3次的出现时间分别为10月1日、10月2日和10月3日,而最佳发射窗口则是1日晚7时,2日晚8时和3日晚10时,其中国庆日晚7时为佳中之佳。
针对媒体称10月1日发射窗口时间为晚6时59分57秒,该专家告诉本报记者,早3秒并非提前3秒发射,而是将这3秒时间预留出来,作为现场指挥员在发送倒计时口令的缓冲时间。(记者万强)
EOF;
//$input = $_POST[$content]; //........................获取要分割的字符串
$test = str_replace(",",',',$test);
$test = str_replace("。",'.',$test);
$mode="/[,|.]/s"; //......................用“逗号” 和 “句号” 分割字符串
$output = preg_split($mode,$test,-1);
print_r($output);
?>
============
楼主不防试试,我的代码是gb2312的字串.
经测试在,字符串为UTF8时,也可以正常工作.
4. PHP函数preg_split()出错误
preg正则表达式必须有一个定界符,它可以是除元字符外的任何字符(位于表达式开始前和结束后。
作用是把表达式与模式修饰符分开。比如 0abc0i 表示匹配不分大小写的abc)。
正则式里只有一个 ,pcre认为它是定义的定界符,于是“正则表达式不存在”就出现了。
解决方法是在 前后各加一个字符,比如 "/ /"
5. php的 preg_split 函数分割字符串时 出现 乱码
乱码很可能的因素是 preg_split 这个函数引起的 ,因为这个函数对汉字的支持不好
建议你采用mb_ 系列的函数
6. php中有关preg_split问题
1、你要知道preg_split()函数的意思。(意思为通过一个正则表达式分隔给定字符串)
2、你要了解正则表达式语法
/[\s,]+/ 详细分析:
a、最左则和最右侧的“/”是分割符号
b、\s表示匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效
c、[ ]中括号表示之间的任何一个,也就是说,中括号内的任何一个字符用来匹配
纯手工录入!!!
7. php分割数组函数 split和explode的区别
一句话总结这三个分割函数的
explode用字符串分割,split和 preg_split用正则分割.
效率方面: explode最快, 其次preg_split最后split.
split()函数
用正则表达式来把字符串拆分并返回数组,如果出错则返回false。
用法: split(string $pattern,string $string [,int $limit])
pattern:相应的正则表达式
string:字符串
limit:指定字符串分割的最大数目
例子1:
<?php
$expression="3*5+12/6-15";
$pattern="/";
$limit=3;
$parts=split($pattern,$expression,$limit);
print_r($parts);
?>
结果:
Array
(
[0] => 3*5+12
[1] => 6-15
)
例子2:
<?php
$expression="3*5+12/6-15";
$pattern="[+/]";
$limit=3;
$parts=split($pattern,$expression,$limit);
print_r($parts);
?>
结果:
Array
(
[0] => 3*5
[1] => 12
[2] => 6-15
)
preg_split() 函数
用 Perl 兼容正则表达式语法,通常比 split() 更快。
preg_split:用正则表达式分隔字符串
4.3.0版本:增加了标记PREG_SPLIT_OFFSET_CAPTURE.
4.0.5版本:增加了标记PREG_SPLIT_DELIM_CAPTURE.
<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>
以上程序输出样式:
Array
(
[0] => s
[1] => t
[2] => r
[3] => i
[4] => n
[5] => g
)
<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>
以上程序输出样式:
Array
(
[0] => Array
(
[0] => hypertext
[1] => 0
)
[1] => Array
(
[0] => language
[1] => 10
)
[2] => Array
(
[0] => programming
[1] => 19
)
explode()函数
使用一个字符串分割另一个字符串
<?php
// 示例 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
var_mp($pieces);
?>
输出:
Array
(
[0] => one
[1] => two|three|four
)
8. php中preg_split()函数的PREG_SPLIT_NO_EMPTY到底有什么作用啊
PREG_SPLIT_NO_EMPTY如果设定了本标记,则
preg_split
()
只返回
非空
的成分。
匹配出的内容里面如果存在为空的不返回。
9. PHP正则 PHP Warning: preg_split(): Unknown modifier '+' in……
缺少模式定界符
<?php
preg_split("/[ ]+/",$line);
//www.hi-docs.com/php/preg_split.html
?>