我有这样的字符串:
sentences = "@en:The dog went for a walk@es:El perro fue de paseo"
期望输出:
splitted = ['The dog went for a walk', 'El perro fue de paseo']
当前代码:
splitted = re.split("^@:$", sentences)
因此,我喜欢根据以加号@开头、以冒号:结尾的字符来拆分句子,因为这是所有语言的编码方式,例如(@en:、@es:、@fr:、@nl:等(
您可以使用否定字符类从@拆分为:而不必在两者之间匹配任何字符。
结果中可能有空条目,您可以过滤掉这些条目。
@[^@:]*:
Regex演示
import re
sentences = "@en:The dog went for a walk@es:El perro fue de paseo"
splitted = [s for s in re.split("@[^@:]*:", sentences) if s]
print(splitted)
输出
['The dog went for a walk', 'El perro fue de paseo']
你好,试试这个代码,它会帮助你
import re
sentences = "@en:The dog went for a walk@es:El perro fue de paseo"
splitted = re.split(r"@[a-zA-z]+:",sentences)
print(splitted)
您需要这个正则表达式:@[^@:]+:
首先,@
与@
匹配
接下来,[^@:]+
匹配不是@
或:
的任意数量的字符(最小一个(
最后,:
与:
匹配
import re
sentences = "@en:The dog went for a walk@es:El perro fue de paseo"
splitted = re.split("@[^@:]+:", sentences)
print(splitted[1:])
输出:
['The dog went for a walk', 'El perro fue de paseo']