PHP kullanarak, operatörler örneğin gibi Google'a destekleyerek sitemde arama geliştirmek için çalışıyorum
- keyword = doğal / default
- "Anahtar kelime" veya "arama ifade" = tam eşleşme
- Anahtar kelime * = kısmi maç
Bu çalışması için iki dizilerle içine dize bölmek gerekir. $ Dizi1 içine kesin bir söz (ama çift tırnak olmadan) () için bir ve) (array2 içine (doğal ve kısmi anahtar kelimeler) her şeyi koymak.
Düzenli Ne ifadeler aşağıdaki dize için bunu başarmak istiyorsunuz?
Example string ($string)
Bugün ben "" test "google arama" a * out "çalışıyorum" ediyorum
Desired result
$Array1 = array(
[0]=>trying
[1]=>google search
[2]=>testing
);
$Array2 = array(
[0]=>today
[1]=>i'm
[2]=>out
[3]=>a*
);
1) Exact Ben tam regexp için aşağıdaki denedim ama iki dizi ile bir ve çift tırnak işaretleri olmadan birini döndürür. Ben sadece [1] $ sonuç kullanabilirsiniz ama burada eksik bir hile var olabilir.
preg_match_all(
'/"([^"]+)"/iu',
'today i\'m "trying" \'out\' a* "google search" "test"',
$result
);
2) Natural/Partial Aşağıdaki kural ancak birkaç boş değerlerle birlikte, doğru anahtar kelimeleri döndürür. Belki özensiz Bu sıradanifade kural veya sadece array_filter aracılığıyla dizi çalıştırın () gerekir?
preg_split(
'/"([^"]+)"|(\s)/iu',
'today i\'m "trying" \'out\' a* "google search" "test"'
);