如何在一定数量的非空格和非paragraph字符之后分割文本?

2024-09-28 22:21:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一定数量的非空格和非段落字符后拆分文本

到目前为止,我知道你可以这样做分裂字符串后的总字符数

cutOff = 10
splitString = oldString[0:cutOff]

但我如何做到这一点,使它不因子空间中的字符计数


Tags: 字符串文本数量空间字符因子cutoff计数
2条回答

可以使用正则表达式。这将返回一个两元素元组(列表),其中包含在所需位置断开的输入字符串的两半:

import re

data = """Now is  the time
for all   good men
to come"""

def break_at_ignoring_whitespace(str, break_at):
    m = re.match(r"((\s*\w){%d})(.*)" % break_at, str, re.S)
    return (m.group(1), m.group(3)) if m else (str, '')

r = break_at_ignoring_whitespace(data, 14)

print(">>" + r[0] + "<<")
print(">>" + r[1] + "<<")

结果:

>>Now is  the time
fo<<
>>r all   good men
to come<<

您可以执行while循环

oldString = "Hello world"
cutOff = 10

i = 0
while i < cutOff and cutOff < len(oldString):
    if oldString[i] in [' ', '\n']: cutOff += 1
    i += 1

splitString = oldString[:cutOff]

相关问题 更多 >