Regular expressions for Google operators

blogger

New Member
Using PHP, I'm trying to improve the search on my site by supporting Google like operators e.g.
  • keyword = natural/default
  • "keyword" or "search phrase" = exact match
  • keyword* = partial match
For this to work I need to to split the string into two arrays. One for the exact words (but without the double quotes) into $Array1() and put everything else (natural and partial keywords) into Array2().What regular expressions would achieve this for the following string?Example string ($string)\[quote\] today i'm "trying" out a* "google search" "test"\[/quote\]Desired result\[code\]$Array1 = array( [0]=>trying [1]=>google search [2]=>testing);$Array2 = array( [0]=>today [1]=>i'm [2]=>out [3]=>a*);\[/code\]1) Exact I've tried the following for the exact regexp but it returns two arrays, one with and one without the double quotes. I could just use $result[1] but there could be a trick that I'm missing here.\[code\]preg_match_all( '/"([^"]+)"/iu', 'today i\'m "trying" \'out\' a* "google search" "test"', $result);\[/code\]2) Natural/Partial The following rule returns the correct keywords, but along with several blank values. This regexp rule maybe sloppy or should I just run the array through array_filter()?\[code\]preg_split( '/"([^"]+)"|(\s)/iu', 'today i\'m "trying" \'out\' a* "google search" "test"');\[/code\]
 
Back
Top