Python Regex заменяет значение на match, если оно содержится в "{! And}" - PullRequest
0 голосов
/ 29 января 2020

Я хотел бы заменить содержимое атрибута содержимым, соответствующим регулярному выражению в нем, ТОЛЬКО если оно окружено "{! And}", включая кавычки.

<lightning-button-menu iconname="utility:help" menualignment="right" onselect="{!c.handleMenuSelect}">
<lightning-menu-item label="Frequently Asked Questions" value="faq">
</lightning-menu-item>

onselect будет выглядеть следующим образом:

onselect={handleMenuSelect}

Если это звучит странно, пожалуйста, дайте мне знать, чтобы я мог уточнить

Ответы [ 2 ]

1 голос
/ 29 января 2020
s = '''
<lightning-button-menu iconname="utility:help" menualignment="right" onselect="{!c.handleMenuSelect}">
<lightning-menu-item label="Frequently Asked Questions" value="faq">
</lightning-menu-item>
'''


import re

for match in re.finditer('"{!(.*?)}"', s):
    s = s[:match.start()] + '{' + match.group(1).split('.', 1)[1] + '}' + s[match.end():]

print(s)

Результат:

<lightning-button-menu iconname="utility:help" menualignment="right" onselect={handleMenuSelect}>
<lightning-menu-item label="Frequently Asked Questions" value="faq">
</lightning-menu-item>
0 голосов
/ 29 января 2020

Это должно вам помочь:

import re

string='''
<lightning-button-menu iconname="utility:help" menualignment="right" onselect="{!c.handleMenuSelect}">
<lightning-menu-item label="Frequently Asked Questions" value="faq">
</lightning-menu-item>
'''
for f in re.finditer(r'onselect="{![\S]+}"', string):
    string= string[:f.start()+len('onselect"{!')]+'handleMenuSelect'+string[f.end()-len('}"'):]

print(string)

где строка - ваш текст

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...