import re
p = re.compile(r"([?.;])")
ss = re.split(p, 'This is a test? This is a test?good.bad')
for s in ss:
print(s)
结果是:
This is a test
?
This is a test
?
good
.
bad
我希望结果是:
This is a test?
This is a test?
good.
bad
为什么将分隔符放在另一行?
编辑: 我想我知道为什么会这么做。问题是如何产生我想要的结果。
答案 0 :(得分:2)
您可以加入定界符和前面的项目:
RPAD(REPLACE(CAST(CEIL(MOD(columntimesec, 60)) / 100 AS VARCHAR(3)) , '.','0:'),4,'0')
答案 1 :(得分:2)
一条评论说您必须使用模式p
。这是拆分后将配对配对的一种方法。 zip_longest
通过为第二个元素返回None
来确保进行奇数配对,如果存在,则将其转换为空字符串。
import re
from itertools import zip_longest
p = re.compile(r"([?.;])")
ss = re.split(p, 'This is a test? This is a test?good.bad')
for a,b in zip_longest(ss[::2],ss[1::2]):
print(a+(b if b else ''))
输出:
This is a test?
This is a test?
good.
bad