Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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_Regex - Fatal编程技术网

Php 逗号的简单正则表达式

Php 逗号的简单正则表达式,php,regex,Php,Regex,喂,有人能帮我用一下这个正则表达式吗 这是我的$lang_文件: define(words_picture,"Снимка"); define(words_amount,"бр."); define(words_name,"Име"); define(words_price_piece,"Ед. цена"); define(words_total,"Обща цена"); define(words_del,"Изтрий"); define(words_delivery,"Доставка,

喂,有人能帮我用一下这个正则表达式吗

这是我的$lang_文件:

define(words_picture,"Снимка");
define(words_amount,"бр.");
define(words_name,"Име");
define(words_price_piece,"Ед. цена");
define(words_total,"Обща цена");
define(words_del,"Изтрий");
define(words_delivery,"Доставка,но няма");
这是我的代码:

$fh = fopen($lang_file, 'r');
$data = str_replace($rep,"",fread($fh, filesize($lang_file)));
fclose($fh); 
preg_match_all('/define\((.*?)\)/i', $data,$defines,PREG_PATTERN_ORDER);
打印$defines时,我得到以下结果:

[0] => words_picture,"Снимка"
[1] => words_amount,"бр."
[2] => words_name,"Име"
[3] => words_price_piece,"Ед. цена"
[4] => words_total,"Обща цена"
[5] => words_del,"Изтрий"
[6] => words_delivery,"Доставка" //here is the part that is missing and i need it :-)
因此,当字符串中有逗号时,它会打断该字符串,并且不会返回正确的值

尝试
(koko.*?
作为匹配项。对于
koko,goko
,它将返回
koko
。如果希望它返回
koko,goko
,请删除
。使其成为
(koko.*)
。对于
koko,goko
,它将返回
koko,goko

下面是我用来测试我的正则表达式的一个站点,它针对许多情况:

根据您的编辑,我想说您正在寻找
(koko.*)
。如果您的代码适用于其他所有功能,请使用以下命令:

preg_match_all('\(/define.*)\)/i', $data,$defines,PREG_PATTERN_ORDER);

定义(顶部菜单项“1”和“1”);定义(顶部菜单项2,“Бааааааааааааа1072;定义(顶部菜单项3,“Пцццццц”);定义(顶部菜单项目4,“ааа-аааааааа”);定义(顶部菜单项5,“Пъчааааа”);定义(顶部菜单项目6,“аааС”);定义(顶部菜单第7项,“κцца”);这是我加载的文件的一部分,我只需要获取每个define及其值,这样我就可以将所有define创建一个数组。但当内部有逗号时,它不会为定义的值返回正确的值//regex站点很酷;-)@Izopi4a,请编辑您的问题并在那里添加此信息。在注释中理解大块代码是不可能的。希望现在更好:-)我不是一个php爱好者,但是如果我了解发生了什么,试着去掉问号。如果这不起作用,请尝试将整个define匹配封装在括号中。所以:preg_match_all('/define((.*))/i',$data,$defines,preg_PATTERN_ORDER);不,这无助于删除“?”,实际上它看起来并没有改变什么