需要python中的正则表达式来分隔信号定义
包含信号定义的字符串的形式为 信号_a=(3=box1:soc1.sig_a1 | box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis | xbox1:bbs.seg_b;0=trip:skip);信号b=super:mario | repp:ver;信号_c=半:六个信号;信号_d=(1=最后一个:结束|开始:扭转;0=演示:测试) 我想分离信号定义并将它们放在一个列表中。像下面这样需要python中的正则表达式来分隔信号定义,python,regex,Python,Regex,包含信号定义的字符串的形式为 信号_a=(3=box1:soc1.sig_a1 | box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis | xbox1:bbs.seg_b;0=trip:skip);信号b=super:mario | repp:ver;信号_c=半:六个信号;信号_d=(1=最后一个:结束|开始:扭转;0=演示:测试) 我想分离信号定义并将它们放在一个列表中。像下面这样 signalDefList = [ 'signal_a=(3=bo
signalDefList = [
'signal_a=(3=box1:soc1.sig_a1|box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis|xbox1:bbs.seg_b;0=trip:skip)',
'signal_b=super:mario|repp:ver',
'signal_c=semi:six_sig',
'signal_d=(1=last:end|start:twist;0=demo:test)'
]
有人能帮我吗?代码
替换:\n
用法
输出:
['signal_a=(3=box1:soc1.sig_a1|box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis|xbox1:bbs.seg_b;0=trip:skip)', 'signal_b=super:mario|repp:ver', 'signal_c=semi:six_sig', 'signal_d=(1=last:end|start:twist;0=demo:test)']
结果 输入 信号_a=(3=box1:soc1.sig_a1 | box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis | xbox1:bbs.seg_b;0=trip:skip);信号b=super:mario | repp:ver;信号_c=半:六个信号;信号_d=(1=最后一个:结束|开始:扭转;0=演示:测试) 输出
解释
代码>匹配分号字符
代码>字面意思
正向前瞻,确保后面是(?=signal)
信号
\n
用法
输出:
['signal_a=(3=box1:soc1.sig_a1|box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis|xbox1:bbs.seg_b;0=trip:skip)', 'signal_b=super:mario|repp:ver', 'signal_c=semi:six_sig', 'signal_d=(1=last:end|start:twist;0=demo:test)']
结果 输入 信号_a=(3=box1:soc1.sig_a1 | box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis | xbox1:bbs.seg_b;0=trip:skip);信号b=super:mario | repp:ver;信号_c=半:六个信号;信号_d=(1=最后一个:结束|开始:扭转;0=演示:测试) 输出
解释
代码>匹配分号字符
代码>字面意思
正向前瞻,确保后面是(?=signal)
信号
;(?=信号)
要获得所需的输出,请将其放入re.split()
方法中:
import re
signalDefList = re.split(';(?=signal)', data)
signalDefList
#['signal_a=3=box1:soc1.sig_a1|box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis|xbox1:bbs.seg_b;0=trip:skip)',
# 'signal_b=super:mario|repp:ver',
# 'signal_c=semi:six_sig',
# 'signal_d=(1=last:end|start:twist;0=demo:test)']
因为已经回答了,所以您应该使用
;(?=信号)
要获得所需的输出,请将其放入re.split()
方法中:
import re
signalDefList = re.split(';(?=signal)', data)
signalDefList
#['signal_a=3=box1:soc1.sig_a1|box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis|xbox1:bbs.seg_b;0=trip:skip)',
# 'signal_b=super:mario|repp:ver',
# 'signal_c=semi:six_sig',
# 'signal_d=(1=last:end|start:twist;0=demo:test)']
如果你能澄清/解释一下你的方法会有帮助。@ArthurVigil我在解释部分做了,非常感谢:)我从来没有使用过前瞻功能,现在我发现它非常有用,它使吐弦变得非常简单。欢迎@ChethanKumarN!如果它回答了你的问题,你应该把它标记为答案:)如果你能澄清/解释一下你的方法,会有帮助的。@ArthurVigil我在解释部分做了,非常感谢:)我从未使用过前瞻功能,现在我发现它非常有用,而且它使吐弦变得非常简单。欢迎你@ChethanKumarN!如果它回答了您的问题,您应该将其标记为答案:)
import re
signalDefList = re.split(';(?=signal)', data)
signalDefList
#['signal_a=3=box1:soc1.sig_a1|box1:soc1.sig_a0;2=box2:band_x1;1=xbox:abis|xbox1:bbs.seg_b;0=trip:skip)',
# 'signal_b=super:mario|repp:ver',
# 'signal_c=semi:six_sig',
# 'signal_d=(1=last:end|start:twist;0=demo:test)']