0
What the answer to .What would be the result of len(match.groups())of a match of (a)(b(?:c (f)(?:e))?
2 Answers
+ 2
@Niawahta:
This is not ternary operator, this is regular expression, and that's Python coding because 'len' is a Python built-in function... but 'html' tag is irrelevant ;P
@Kabelo Selebi:
You doesn't provide all necessary code to explain completly, but, on the main lines:
+ len() return count of items of a list
+ guessing 'match' contain a (valid: not None) result of a regular expression on a string, match.groups() will return a tupple with all matching, including captured groups
+ in regular expressions, captured groups are defined by enclosing things inside parenthesis, and NOT captured groups are parenthesis with content starting by '?:'
+ at least one implicit captured group exist in any regular expression, as we are enclosing whole regular expression inside a prenthesis pair
So, answer to your question is: the result will be the number of captured groups (implicit+explicit) by the regular expression (there are always items for each in the returned tupple, even there's nothing to capture -- then item will be an empty string)... 4 in your case (1 implicit + 3 explicit -- not counted: 2 uncaptured)
+ 1
Um... those aren't Python ternary operators. Those are Java/JavaScript/C++/etc. ternary operators.