Regular expressions: great when they work!
Wow, it's great when regular expressions work (even if you're fumbling in the dark with them...)
Traversing through an angle-bracket delimited term set (term hierarchy path).
Input:
this > is > a > term > list
Code:
$regexp = '%(?:^|>\ *)("(?>[^"]*)(?>""[^"]* )*"|(?: [^">]*))%x';
preg_match_all($regexp, $typed_termset, $term_matches);
$typed_terms = array_unique($term_matches[1]);
Result:
Array
(
[0] => this
[1] => is
[2] => a
[3] => term
[4] => list
)
Further review of this expression to be sure it works as intended would certainly be appreciated.
Working as intended means splitting terms into a hierarchical path on angle brackets, >, after the split-on-commas regexp lifted straight from taxonomy.module has already done its work.
Wow, it's great when regular expressions work (even if you're fumbling in the dark with them...)
Traversing through an angle-bracket delimited term set (term hierarchy path).
Input:
this > is > a > term > list
Code:
$regexp = '%(?:^|>\ *)("(?>[^"]*)(?>""[^"]* )*"|(?: [^">]*))%x';
preg_match_all($regexp, $typed_termset, $term_matches);
$typed_terms = array_unique($term_matches[1]);
Result:
Array
(
[0] => this
[1] => is
[2] => a
[3] => term
[4] => list
)
Further review of this expression to be sure it works as intended would certainly be appreciated.
Working as intended means splitting terms into a hierarchical path on angle brackets, >, after the split-on-commas regexp lifted straight from taxonomy.module has already done its work.
Comments
Post new comment