Home > Blockchain >  Find strings that start with [[ and specific string
Find strings that start with [[ and specific string

Time:10-31

I have these strings:

[[:File:Example.jpg]]
[[:File:Example.jpg|this example]]
[[Media:Example.jpg]]
[[Georgia (U.S. state)|Georgia]]
[[Arkansas]]
[[Canada]]
[[Virginia]]
[[Image:Houstonia longifolia - Long Leaf Bluet 2.jpg|thumb|left]]

I want to extract with re the strings that start with [[Image or [[Media: or [[:file:

CodePudding user response:

To find the strings beginning with [[:File:, you can use:

  re.search(r"\[\[:File.*?]]", your_strings)

Same with [[Media: and [[Image:

  re.search(r"\[\[Media:.*?]]", your_strings)

  re.search(r"\[\[Image.*?]]", your_strings)

See this example.

CodePudding user response:

Try this Regex

Outputs only if there is [[Image, [[Media: or [[:File: at the beginning of the string (also added re.IGNORECASE flag to give the match at any case)

\[\[(?:Image|Media|:File):. ]]

Code:

import re

a = '''[[:File:Example.jpg]]
[[:File:Example.jpg|this example]]
[[Media:Example.jpg]]
[[Georgia (U.S. state)|Georgia]]
[[Arkansas]]
[[Canada]]
[[Virginia]]
[[Image:Houstonia longifolia - Long Leaf Bluet 2.jpg|thumb|left]]'''

print(re.findall(r'\[\[(?:Image|Media|:File):. ]]', a, flags=re.IGNORECASE))

Outputs:

[
 '[[:File:Example.jpg]]',
 '[[:File:Example.jpg|this example]]',
 '[[Media:Example.jpg]]',
 '[[Image:Houstonia longifolia - Long Leaf Bluet 2.jpg|thumb|left]]'
]

Regex101 Demo

Tell me if its not working...

  • Related