我正在努力解决一些正则表达式语法。
我正在寻找的答案是“橡胶”这个词。我从“橡胶”开始。基本上“ub”已添加在元音之前。为了解密它以将单词返回到“rubber”,我不能只删除任何“ub”组合。我必须寻找“ub + 元音”
import re
text = "rububbuber"
vowels = ["a","e","i","o","u"]
vowel_string = str(vowels)
def decrypt(text):
decrypted_text = ""
pattern = re.compile(r'ub'+vowel_string)
我已经成功地能够读取“文本”来识别“ub + 元音”模式。我不知道如何做其余的事情,这是下面的伪代码......
我想迭代“text”中的字符。寻找“ub + 元音”模式。如果字符是常规字符,则将该字符添加到“decrypted_text”。如果函数找到“ub + 元音”模式,则 pop() 元音并将其添加到“decrypted_text”以重建我的最终单词,即“rubber”。
最后一点,我不希望这仅适用于“橡胶”一词。我只知道如何解决这个词。
最佳答案
更复杂的前瞻可以解决它,但我会简单地搜索和捕获 ub+元音,并用捕获的元音替换:
import re
s = "rububbuber"
print(re.sub("ub([aeiou])",r"\1",s))
结果:
rubber
关于regex - Python-正则表达式语法。查找字符串,删除部分并返回结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49864888/