मैं अपने अजगर कार्यक्रम में एक SPARQL क्वेरी में इस लाइन का उपयोग कर रहा:तार्किक या SPARQL regex() में कैसे उपयोग करें?
FILTER regex(?name, "%s", "i")
(जहां %s
खोज उपयोगकर्ता द्वारा दर्ज पाठ है) मैं इस मिलान करना चाहते हैं या तो ?name
या ?featurename
%s
है, लेकिन मुझे regex() का उपयोग करने के लिए कोई दस्तावेज़ या ट्यूटोरियल नहीं मिल रहा है।
FILTER regex((?name | ?featurename), "%s", "i")
FILTER regex((?name || ?featurename), "%s", "i")
FILTER regex((?name OR ?featurename), "%s", "i")
FILTER regex((?name, ?featurename), "%s", "i")
और उन में से प्रत्येक के बिना ()
FILTER regex(?name, "%s", "i") || regex(?featurename, "%s", "i")
क्या यह करने के लिए सही तरीका है: मैं एक जोड़े चीजें हैं जो उचित लग रहा था की कोशिश की? धन्यवाद
अद्यतन: यूनियन कार्यों का उपयोग करना। लेकिन मैं समझ यह भी काम करता है कि अगर आप सिर्फ इसलिए की तरह regex() हिस्सा दोहराने:
FILTER (regex(?name, "%s", "i") || regex(?featurename, "%s", "i"))
दोनों समाधान
कि में एक छोटे से गंदा लग आप एक ही स्ट्रिंग की प्रतियों के साथ एक 2-तत्व टपल उपयोग करने के लिए %s
एस दोनों भरने के लिए।