我有以下句子:
Dave put the rubbish in the {{ if dave_good }}bin{{ else }}street{{ endif }}.
我目前正在通过捕获 [[ something ]]
来替换文本字符串中的变量并将整个实例替换为值(不是问题)。但这是使用 python 的 re
图书馆。
我想知道是否有人可以告诉我如何:
- 搜索
{{ if dave_good }}
的单个实例在字符串中 - 从
{{ if dave_good }}
向前计数确保有{{ endif }}
在字符串末尾之前 - 如果没有
{{ else }}
然后根据dave_good
的 bool 属性删除标签,或标签及其内容(在文本中的位置) - 如果有
{{ else }}
- 如果
dave_good
是TRUE
然后删除{{ if dav_good }}
和{{ else }}street{{ endif}}
- 如果
dave_good
是FALSE
然后删除{{ endif }}
和{{ if dave_good }}bin{{ else }}
- 如果
最佳答案
尝试使用Regular Expressions .
示例:
import re
result = re.match("\{\{((if|else|endif).*?)\}\}","{{if 100 > 1}}",re.I)
print result.groups()
result = re.match("\{\{((if|else|endif).*?)\}\}","{{else}}",re.I)
print result.groups()
result = re.match("\{\{((if|else|endif).*?)\}\}","{{endif}}",re.I)
print result.groups()
或者使用Python的模板引擎
祝你好运!
关于python - 使用 Python 搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19772750/