如何使用正则表达式

时间:2017-10-13 04:04:05

标签: python regex python-3.x python-3.5

我有一个this is title [[this is translated title]]的字符串,我需要提取这两个子字段。 this is titlethis is translated title

我尝试使用正则表达式但无法完成它。

def translate(value):
    # Values are paseed in the form of 
    # "This is text [[This is translated text]]"
    import re
    regex = r"(.+)(\[\[.*\]\])"
    match = re.match(regex, value)
    # Return text
    first = match.group(1)

    # Return translated text
    second = match.group(2).lstrip("[[").rstrip("]]")

    return first, second

但这失败了。当字符串是"简单的纯文本"

2 个答案:

答案 0 :(得分:0)

我发现了一种不使用正则表达式的简单方法

def trns(value):
    first, second =  value.rstrip("]]").split("[[")
    return first, second

答案 1 :(得分:0)

您必须在r'((\w.*)\[\[(\w.*)\]\]|(\w.*))中使用正则表达式group(1)产量这是标题,并在group(2)中使用这是已翻译的标题你的代码应该是

def translate(value):
    # value = "This is text [[This is translated text]]"
    import re
    regex = r'((\w.*)\[\[(\w.*)\]\]|(\w.*))'
    match = re.match(regex, value)
    result = [x for x in match.groups() if x and x!=value]
    return result if result else value

这会按预期返回。

要测试正则表达式,您可以使用this.