利用Python进行数据分析——字符串操作(10)

字符串操作

字符串对象方法

In [124]: val
Out[124]: 'a, b,     guido'

In [125]: val.split(',')
Out[125]: ['a', ' b', '     guido']

# 根据','划分出来的子串,使用x.strip()去掉空格部分
In [126]: pieces  =[x.strip() for x in val.split(', ')]

In [127]: pieces
Out[127]: ['a', 'b', 'guido']

# 这些子字符串可以使用加法与两个冒号分隔符连接在一起:
In [143]: first, second, third = pieces

In [144]: first + '::' + second + '::' + third
Out[144]: 'a::b::guido'

# 在字符串’ : : ’的join方法中传入一个列表或元组是一种更快且更加Pythonic(Python风格化)的方法:

In [146]: pieces
Out[146]: ['a', 'b', 'guido']

In [147]: '::'.join(pieces)
Out[147]: 'a::b::guido'

# 使用Python的in关键字可以检验子字符串

In [148]: 'guido' in val
Out[148]: True
# index 和  find  也可以实现该功能
In [149]: val.index(',')
Out[149]: 1

In [150]: val.find('p')
Out[150]: -1

# index 在找不到的时候会抛出异常
In [151]: val.index('w')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-151-b08f5379f9bf> in <module>()
----> 1 val.index('w')

ValueError: substring not found


# count返回的是某个特定的子字符串在字符串中出现的次数:

In [152]: val.count(',')
Out[152]: 2

# replace函数做替换
In [153]: val.replace(', ', '::')
Out[153]: 'a::b::    guido'

正则表达式

# 描述一个或多个空白字符的正则表达式是\s+
In [154]: import re

In [155]: text = "foo    bar\tbaz \tqux"

In [156]: text
Out[156]: 'foo    bar\tbaz \tqux'

In [157]: re.split('\s+', text)
Out[157]: ['foo', 'bar', 'baz', 'qux']

  考虑下一个可以识别大部分电子邮件地址的正则表达式:

In [158]: text = """Dave dave@google.com Steve steve@gmail.com Rob rob@gmail.com"""

In [159]: text
Out[159]: 'Dave dave@google.com Steve steve@gmail.com Rob rob@gmail.com'

In [160]: pattern = r'[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}'

 # re.IGNORECASE 可以使正则表达式不区分大小写
In [161]: regex  =re.compile(pattern, flags=re.IGNORECASE)

In [162]: regex.findall(text)
Out[162]: ['dave@google.com', 'steve@gmail.com', 'rob@gmail.com']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值