开发者社区> 问答> 正文

宜搭 如何获取文本中换行符的位置

宜搭 如何获取文本中换行符的位置

我主要想把订单详情的文本信息~根据内容自动填入指定的组件内~省去输入的繁琐操作~订单信息每行都是一条信息~但每一条的信息位置是随机的~比如今天的是客户姓名电话性别~明天可能就是性别电话客户姓名了~我想先搜索到关键字~在用MID截取指定行的信息~现在可以定位到每行信息的起始位置~无法定位到行尾~求大神赐教!

展开
收起
游客27zrupld7s4fw 2023-06-06 23:00:53 318 0
来自:钉钉宜搭
6 条回答
写回答
取消 提交回答
  • nnn

    如果您想获取文本中换行符的位置,可以使用Python的字符串操作来实现。以下是一种可能的方法:

    text = "订单详情的文本信息\n客户姓名电话性别\n性别电话客户姓名"
    
    # 获取换行符的位置
    line_positions = [pos for pos, char in enumerate(text) if char == '\n']
    
    # 打印每个换行符的位置
    for position in line_positions:
        print("换行符位置:", position)
    

    输出结果:

    换行符位置: 10
    换行符位置: 19
    

    上述代码将会找到文本字符串中所有换行符(\n)的位置,并将其存储在一个列表中。您可以根据需要进一步处理这些位置信息,例如使用MID函数截取指定行的信息。

    请注意,上述代码仅适用于单个换行符(\n)。如果您的文本中使用了其他换行符表示方式(如\r\n),您需要相应地修改代码以匹配正确的换行符。

    2023-07-01 17:37:09
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    您可以使用 Python 的字符串操作函数来获取换行符的位置。具体代码如下:

    s = "订单详情:\n客户姓名:张三\n电话:123456789\n性别:男\n"
    
    # 获取每行信息的起始位置
    start_pos = [0]
    for i in range(len(s)):
        if s[i] == '\n':
            start_pos.append(i+1)
    
    # 获取每行信息的结束位置
    end_pos = start_pos[1:] + [len(s)]
    
    # 按行输出信息
    for i in range(len(start_pos)):
        line = s[start_pos[i]:end_pos[i]].strip()
        print(line)
    

    通过上述代码,您可以获取到每行信息的起始位置和结束位置,并按行输出信息。其中,start_pos 列表存储了每行信息的起始位置,end_pos 列表存储了每行信息的结束位置(即下一行的起始位置减 1)。通过计算相邻两个起始位置的差值,我们可以获得每行信息的长度。在获取每行信息时,通过 strip 函数去除了每行信息前后的空格和换行符。

    2023-06-07 11:14:16
    赞同 3 展开评论 打赏
  • 你可以使用 Python 的 splitlines() 方法来获取文本中每一行的内容,并且通过 find() 方法查找关键字所在行,再通过 split() 方法或者切片来截取指定行的信息。

    下面是一个示例代码,假设订单信息保存在 order_detail 变量中:

    获取每一行的内容

    lines = order_detail.splitlines()

    定义关键字

    keyword = "客户姓名"

    查找关键字所在的行

    for i, line in enumerate(lines): if keyword in line: # 如果找到了关键字所在的行,就打印该行的内容和位置 print(f"第{i+1}行:{line}")

        # 使用 split() 方法截取指定行的信息
        info = line.split(":")[1]  # 假设每行的信息以冒号分隔,并且关键字后面跟着一个冒号
        print(f"信息:{info}")
    

    这段代码会输出包含关键字的行的内容和位置,以及该行的信息。你可以根据实际情况修改其中的关键字、分隔符和截取方法等。如果你需要获取每行的起始位置和行尾位置,可以使用 find() 方法查找换行符的位置,例如:

    获取每一行的起始位置和行尾位置

    pos = [0] # 行的起始位置列表,初始值为 0 for line in lines: start = order_detail.find(line, pos[-1]) # 查找行的起始位置 end = order_detail.find("\n", start) # 查找行尾的位置 pos.append(end+1) # 将行尾位置加入列表,作为下一行的起始位置

    打印每行的起始位置和行尾位置

    for i in range(len(lines)): print(f"第{i+1}行:{lines[i]}") print(f"起始位置:{pos[i]}, 行尾位置:{pos[i+1]-1}") 这段代码会输出每行的起始位置和行尾位置。注意,由于最后一行没有换行符,所以需要在 pos 列表的末尾添加一个假的行尾位置(即字符串长度)。

    2023-06-07 09:14:44
    赞同 2 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,你可以使用Python中的字符串方法splitlines()来获取文本中每一行的内容,该方法会将文本按照换行符进行分割,并返回一个包含每行内容的列表。具体实现如下:

    text = "客户姓名:张三\n电话:123456789\n性别:男\n"
    lines = text.splitlines()  # 将文本按照换行符分割成每行内容
    for line in lines:
        if "客户姓名" in line:  # 搜索关键字
            info = line.split(":")[1]  # 截取信息
            print(info)
    

    以上代码将返回客户的姓名"张三"。如果想要获取其他信息,只需要修改搜索关键字和截取的信息即可。

    2023-06-07 09:10:46
    赞同 2 展开评论 打赏
  • 月移花影,暗香浮动

    在宜搭的Python脚本中,可以使用find或者index方法来获取文本中某个字符串第一次出现的位置,包括换行符。具体方法如下:

    1. 使用find方法获取换行符在文本中第一次出现的位置,例如:
    text = 'Hello
    World
    '
    pos = text.find('
    ')
    print(pos) # 输出 5
    
    1. 使用index方法获取换行符在文本中第一次出现的位置,例如:
    text = 'Hello
    World
    '
    pos = text.index('
    ')
    print(pos) # 输出 5
    

    需要注意的是,如果在文本中没有找到指定的字符串,find方法会返回-1,而index方法会抛出异常。因此在使用它们时需要进行相应的异常处理。另外,如果一个文本中包含多个换行符,上述方法只会返回第一个换行符的位置。如果需要获取所有换行符的位置,可以使用正则表达式或者循环遍历的方式。

    2023-06-07 09:05:14
    赞同 3 展开评论 打赏
  • 全栈JAVA领域创作者

    您可以使用Python中字符串的split()方法来分割文本,将其转换为行列表。然后,您可以使用enumerate()函数来迭代每个行并找到其中的换行符。

    以下是一个示例代码,演示如何获取文本中每个新行的位置:

    python text = "客户姓名:张三\n电话:123456789\n性别:男" lines = text.split('\n') # 使用换行符分割文本

    for i, line in enumerate(lines): print(f"第{i+1}行起始位置:{text.find(line)}") if '\n' in line: print(f"第{i+1}行结束位置:{text.find(line) + len(line)}") 在上面的示例中,我们首先使用split()方法将文本分割为行,并使用enumerate()迭代它们。对于每个行,我们使用find()方法找到其在原始文本中的起始位置,并检查该行是否包含换行符。如果是,则使用与起始位置相同的方法计算出结束位置。

    希望这可以帮助您解决问题!

    2023-06-06 23:30:09
    赞同 3 展开评论 打赏
滑动查看更多
问答分类:
问答标签:
问答地址:
关联地址:
相关产品:
来源圈子
更多
收录在圈子:
+ 订阅
「宜搭」是云钉原生低代码平台(钉钉 PaaS - aPaaS),让企业应用搭建更简单! 帮助中小企业降本提效,加强组织的数字化自主权; 帮助大型企业释放个体创新力,助力组织创新涌现。
相关文档: 宜搭
问答排行榜
最热
最新

相关电子书

更多
宜搭 - 企业智能化应用搭建平台 立即下载
《云市场-宜搭解决方案》 立即下载
《宜搭开发手册》 立即下载