以英文逗号作为分隔符,使用explode把字符串切割为数组
为了不影响分割,当值含有英文逗号时,需要在两侧加双引号(如:"a,b"),且值不能包含双引号
需要实现:分割后保持双引号中内容的完整性
$text = "小张,13006701576,\"123@163.com\",1,\"繁體字,测试,测试222\",test,user";
预期得到数组:
$arr = array(
"小张",
"13006701576",
"123@163.com",
"繁體字,测试,测试222",
"test",
"user"
1、使用表达式|\"(.*?)\"|匹配字符串中使用括号括起来的内容
2、使用表达式/,/把双引号内容的英文逗号替换为%comma%,再以英文逗号使用explode分割
3、分割完成后,循环数组,使用str_replace把内容中的%comma%替换回英文逗号
$text = "小张,13006701576,\"123@163.com\",1\"繁體,字,测试,测试222\",test,user";
$string = preg_replace_callback(
"|\"(.*?)\"|",
function ($matches) {
return preg_replace("/,/", "%comma%", $matches[1]);
$text);
$arr = explode(",", $string);
foreach ($arr as &$item){
$item = str_replace("%comma%", ",", $item);
echo json_encode($arr);
$preg= '/xue[\s\S]*?om/i';
preg_match_all($preg,"学并思网址xuebingsi.com",$res);
var_dump($res[0][0]);
以上这篇
PHP
正
则
匹配
到2个
字符串
之间的
内容
方法就是小编分享给大家的全部
内容
了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章:
php
正
则去掉 空格 与
php
正
则表达式
使用
方法整理集合
PHP
常用
正
则表达式精选(推荐)
PHP
正
则表达式处理函数(PCRE 函数)实例小结
我试图
匹配
{bracket}之间的所有文本,但是如果它在引号
中
则不是:例如:$str =’我想要的价值,与价值“我做{不}想要”我的结果应该抢夺“想要”,但省略“不”.我已经拼命搜索了stackoverflow的
正
则表达式,可以执行此操作,没有运气.我已经看到了答案,允许我在引号之间但不在引号之间和
括
号
中
得到文本.这甚至可能吗?如果是这样,它是如何完成的?到目前为止,这就是我所拥有的:preg_m...
我们在做
字符串
拼接的时候,有多种方式,最常用的莫过于
使用
单引号和
双引号
拼接了,当让sprintf()也用的比较多,但每次在
使用
单引号和
双引号
时,总会纠结
使用
哪一种方式,不知道你们有没有纠结过,所以今天来仔细研究下。单引号我们先来看个单引号的例子:$s = 'world';echo 'hello ' . $s; // hello worldecho 'hello $s'; // hello $s从上...
1、定义
字符串
在
PHP
中
,
字符串
的定义可以
使用
单引号,也可以
使用
上引号。但是必须
使用
同一种单或
双引号
来定义
字符串
,如:‘Hello"和“Hello'为非法的
字符串
定义。
定义
字符串
时,只有一种引号被视为定义符,即单引号或
双引号
。于是,如果一个
字符串
由
双引号
开始,那么只有
双引号
被分析器解析。这样,你就可以在
双引号
串
中
包含任何其他字符,甚至单引号。下面的引号串都是合法的:
PHP
中
单引号和
双引号
具有不同的含义,最大的几项区别如下:单引号
中
,任何变量($var)、特殊转义字符(如“/t /r /n”等)不会被解析,因此
PHP
的解析速度更快,转义字符仅仅支持“/’”和“//”这样对单引号和反斜杠本身的转义;
双引号
中
,变量($var)值会代入
字符串
中
,特殊转义字符也会被解析成特定的单个字符,还有一些专门针对上述两项特性的特殊功能性转义,例如“/$”和“{
为了
匹配
文字上的反斜杠,许多人和
PHP
手册都说:总是这样对它进行三倍转义\\\\注意事项 :单引号和
双引号
的
PHP
字符串
具有反斜杠的特殊含义。因此,如果\必须与
正
则表达式
匹配
\\,则必须在
PHP
代码
中
使用
"\\\\"或'\\\\'。这是一个示例
字符串
: \test$test = "\\test"; // outputs \test;// WON'T WORK: pattern in double-...
基本上,我需要一个
正
则表达式来
匹配
PHP
标记内的所有
双引号
字符串
,而内部没有变量。这是我到目前为止的
内容
:"([^\$]*?)"(?![\w ]*')并替换为:'$1'但是,这也将
匹配
PHP
标记之外的
内容
,例如HTML属性。示例案例:Here's my"dog's website"$somevar ="someval";$somevar2 ="someval's got a quote insid...
// 取出所有""
中
间的
内容
,
正
则如下Pattern pattern1 = Pattern.compile("(?<=\")([\\S]+?)(?=\")");这里取得是string
中
双引号
中
间的
内容
,可以根据需求自己修改,比如取[]
中
间的
内容
,
正
则可以修改成(?<=\")([\\[]+?)(?=\]) 如果只
匹配
中
文,可以改成(?<=\")([\u4e00-\u9fa5]+?)...
PHP
单引号及
双引号
均可以修饰
字符串
类型的数据,如果修饰的
字符串
中
含有变量(例$name);最大的区别是:
双引号
会替换变量的值,而单引号会把它当做
字符串
输出。例如: ...
如果想
匹配
如
.,{,$,等特殊字符(在
正
则表达式
中
有特殊意义的字符),就必须在该字符前加反斜杠(\),(C
中
管它\叫‘转义符’)如果想表示这个反斜杠(\),就在他前面再加个反斜杠,即改成(\\)。
必须注意的是在
PHP
中
要尽量把
正
则表达式放在单引号(')
中
。如果把
正
则表达式放在
双引号
里则会引起一些不必要的麻烦。在
PHP
的
正
则表达式
中
也要
使用
反斜杠(\)来‘掩盖’一些特殊的字符--像反斜杠(\
需要处理的
字符串
[{columnDisplaySize=8, columnName=WARD_CODE, columnTypeName=varchar}, {columnDisplaySize=11, columnName=BED_NO, columnTypeName=int},[{columnDisplaySize=8, columnName=WARD_CODE, columnTypeName=...
匹配
表达式:\"([^\"]*)\"
匹配
结果实验: String t = "\"world\"";
String p = "\"([^\"]*)\"" ;
Pattern P=Pattern.compile(p);
Matcher matcher1=P.matcher(t);
if(matcher1.find())