python - Regex to match MediaWiki template without certain named parameter -
i’ll point: need regex matches template out of list that have date parameter - assuming (singleton now) list of templates “stub”, things below in bold should matched:
{{stub}}{{stub|param}}{{stub|date=a}}{{stub|param|date=a}}{{stub|date=a|param}}{{stub|param|date=a|param}}note: “param” means any number of parameters there.
additionally, nice if match if date parameter blank, not required.
the current regex have far is
{{((?:stub|inaccurate)(?!(?:\|.*?\|)*?\|date=.*?(?:\|.*?)*?)(?:\|.*?)*?)}} however matches fourth , sixth items in list above.
note: (?:stub|inaccurate) make sure template either stub or inaccurate template.
note 2: flavor of regex here python 2.7 module re.
i think it's enough have negative look-ahead, tries match date @ position?
{{((?:stub|inaccurate)(?!.*\|date=).*)}}
if empty date parameters have | following equals sign, use
{{((?:stub|inaccurate)(?!.*\|date=[^|}]).*)}}
Comments
Post a Comment