Regular expressions zijn geheel nieuw voor mij. Ik heb ze juist altijd gemeden wegens de ogenschijnlijke complexiteit. Maargoed, waar ik regular expressions nu voor nodig heb is het parsen van een zoekopdracht. Net als bijvoorbeeld in Google, alleen dan zonder dingen als - en ~. Gewoon queries als:
"regular expressions" "search string" parse
En dan dus "regular expressions", "search string" en "parse" eruit halen (maar dan zonder quotes). Nu is het me al gelukt met minimale kennis van regular expressions, maar ik heb het idee dat het efficienter kan of dat er tenminste overbodige dingen uit kunnen. Ik heb op dit moment het volgende:
(?>"(?<keyword>[^"]+)"\s?)|(?<keyword>[^"^\s]+)
Wat dit in feite doet is op zoek gaan naar twee soorten invoer: met quotes en zonder quotes (dus "keyword keyword ..." en keyword). De " is dus optioneel, maar alles tussen twee " moeten gegroepeerd worden; de " optioneel maken werkt dus niet, vandaar twee soorten zoekopdrachten gescheiden door een pipe.
Zoals gezegd werkt het perfect, alleen kan het wellicht korter en/of efficienter. Ideeën? Als het er goed uitziet, dan ook graag even melden
"regular expressions" "search string" parse
En dan dus "regular expressions", "search string" en "parse" eruit halen (maar dan zonder quotes). Nu is het me al gelukt met minimale kennis van regular expressions, maar ik heb het idee dat het efficienter kan of dat er tenminste overbodige dingen uit kunnen. Ik heb op dit moment het volgende:
(?>"(?<keyword>[^"]+)"\s?)|(?<keyword>[^"^\s]+)
Wat dit in feite doet is op zoek gaan naar twee soorten invoer: met quotes en zonder quotes (dus "keyword keyword ..." en keyword). De " is dus optioneel, maar alles tussen twee " moeten gegroepeerd worden; de " optioneel maken werkt dus niet, vandaar twee soorten zoekopdrachten gescheiden door een pipe.
Zoals gezegd werkt het perfect, alleen kan het wellicht korter en/of efficienter. Ideeën? Als het er goed uitziet, dan ook graag even melden