I need to write a regex to parse $$ sign between paragraphs in an HTML page I tried
JavaScript
x
4
1
s = "<p>adsadfsaaadsadsaExample String</p><p>$$</p>"
2
replaced = re.sub('<p>$$</p>', '1',s)
3
print (replaced)
4
But I need to apply the same even there are some styles exists in paragraph,
Expected Input:
JavaScript
1
6
1
<p>i have</p> <p style="text-align:justify">$$</p>
2
<p> asdas jas dafad</p>
3
<p>$$<p>
4
<p>asdasd</p>
5
<p><span>$$</span></p>
6
Expected Output:
JavaScript
1
6
1
<p>i have</p> 1
2
<p> asdas jas dafad</p>
3
1
4
<p>asdasd</p>
5
1
6
please help
Advertisement
Answer
JavaScript
1
9
1
import re
2
3
pattern = r'<p.*?>.*?</p>'
4
html_str = '<p>i have</p> <p style="text-align:justify">$$</p><p> asdas jas dafad</p><p>$$</p><p>asdasd</p><p><span>$$</span></p>'
5
new_html_str = re.sub(pattern, lambda match: "1" if '$$' in match.group() else match.group(),s)
6
print(new_html_str)
7
8
prints - '<p>i have</p> 1<p> asdas jas dafad</p>1<p>asdasd</p>1'
9
my answer is completely based on your approach, for a better solution, I suggest to parse the html and process.