查看: 2006|回复: 7
收起左侧

[其他] python提取字符问题

[复制链接]
JohnChu
发表于 2015-8-27 15:46:39 | 显示全部楼层 |阅读模式
字符串:abcdefg\nefcref
我需要提取从c到e的字符,包含c和e,赋值给另一个变量

1. 字符串中可能会有1个以上的符合条件的字符串,都要匹配,所以变量可能是一个字符。
2. 如我的例子所示,可能会有e(结尾),但是没有c(首),这种不需要匹配。

想请教如何实现,求python大神
Random
发表于 2015-8-28 21:32:58 | 显示全部楼层
本帖最后由 Random 于 2015-8-28 21:44 编辑

不知道楼主所说的 都要匹配 是什么意思
一种理解按照黄色高亮所给的位置,5楼的正则即可,有一个 findall 函数就是用来干这个事情的
另一种理解要匹配所有可能,自己实现函数
[mw_shl_code=python,true]def getMatch(source, begin, end):
    begin_positions = []
    end_positions = []
    for m in range(len(source)):
        if source[m] == begin:
            begin_positions.append(m)
        if source[m] == end:
            end_positions.append(m)
    result = [source[x:y + 1]
              for x in begin_positions for y in end_positions if x < y]
    return result[/mw_shl_code]

print(getMatch('abcdefg\nefcref', 'c', 'e')) 调用的话会输出 ['cde','cdefg\ne','cdefg\nefcre','cre']
落落的瓶子
发表于 2015-8-27 16:54:15 | 显示全部楼层
目测。。。你更需要正则表达式
JohnChu
 楼主| 发表于 2015-8-28 09:56:45 | 显示全部楼层
落落的瓶子 发表于 2015-8-27 16:54
目测。。。你更需要正则表达式

我用的就是正则,没办法实现
落落的瓶子
发表于 2015-8-28 11:45:32 | 显示全部楼层
ImN1
发表于 2015-8-28 14:50:47 | 显示全部楼层
纯字母的话
c[a-df-z]+?e

你该去学正则,这些都是最基本的,也写不出来么?
JohnChu
 楼主| 发表于 2015-8-30 19:20:10 | 显示全部楼层
Random 发表于 2015-8-28 21:32
不知道楼主所说的 都要匹配 是什么意思
一种理解按照黄色高亮所给的位置,5楼的正则即可,有一个 findall  ...

最终还是得写个像这样的函数啊。。。
Random
发表于 2015-8-30 19:22:39 | 显示全部楼层
JohnChu 发表于 2015-8-30 19:20
最终还是得写个像这样的函数啊。。。

不是啊,正则和自己写的函数输出不同,看你的需求了
主要是没理解问题中的全部匹配
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-14 18:23 , Processed in 0.127563 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表