使用单引号或双引号引号解析带有keyword = contend的字符串

时间:2012-07-27 11:56:51

标签: php parsing double-quotes

找到很多

  

keyword =“带引号的文字”

     

但没有忽略双引号或单引号keyword =“text with   引用“或keyword ='带引号'的文字

     

我制作了以下代码,但它不起作用

     
    

函数GENERIC_FIND_KEYWORD_AND_QUOTED_TEXT($ STR)
    {// keyword =“”被空格或非符号字符串包围(在a-zA-Z0-9_之外

  
     

//使用(key1 ='embeded qwuotes'AND key2 =“embeded qwuotes”)!key3 ='embeded qwuotes'key4 =“embeded qwuotes”... //作为输入字符串

   $res=preg_match_all('/[a-zA-Z0-9_]{1,}=("((?:[^\\\]*?(?:\\\")?)*?)"|\'((?:[^\\\]*?(?:\\\')?)*?)\')/', $str, $arr, PREG_SET_ORDER);
     

print_r($ arr); echo“”; //会

     

像数组一样的数组('key1'=>'text','key2'=>“text”   ,'key3'=>'text','key4'=>'text','key5'=>'text')}

     

它不起作用,但是每行匹配多次       符号(定义为[a-zA-Z0-9 _] {1,}      以=单引号或双引号结尾      应检测引用的字符串,忽略引号之间的引号   单引号或双引号....

关键字不是像XML那样用空格包围,而是用任何非符号字符或空格..... 我想验证所有mysql关键字和匹配构造...

在哪里?使它成为特别感兴趣的关键词

输入输出结构:

输入:很少或没有控制,我不知道用户将要输入什么 这个想法是尽可能通用的;考虑引用字符串中的所有内容

  

keyword =“bla'bla”“dfddfd”或keword2 ='dfdfd“dsdsdfsdfdf'

确定必须正确且一致地说明......

  

输出:array(keyword =>“bla'bla”“dfddfd”,                             keyword2 =>'dfdfd“dsdsdfsdfdf',                             ...)

其次:(略有不同的相关问题) 我想过滤特殊标记的关键字以便以后替换它们(需要不变的组件)

  

keyword =“bla'bla”“dfddfd”或/和_keword2 ='dfdfd“dsdsdfsdfdf'

我只得到了taged组件_ * =“....”过滤(假设它更有效地更改匹配patern然后遍历所有数组元素以找到secondary关键字patern ... \

  

输出:array(_keyword2 =>'dfdfd“dsdsdfsdfdf',                             ...)

1 个答案:

答案 0 :(得分:0)

正则表达式:

/([^ ]+)\=((\"([^"]+)\")|(\'([^']+)\'))/