我有一个this is title [[this is translated title]]
的字符串,我需要提取这两个子字段。 this is title
,this 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
但这失败了。当字符串是"简单的纯文本"
答案 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.