Python量化交易||正则表达式知道这些就够用了(一)

  • 正则表达式

正则表达式主要用于处理文本格式。

Python本身有些内置函数可以处理str,但是正则表达式更高效,简单理解为输入法中的五笔,难学,但是学会了打字就快多了。

  • 检测字符串中是否包含某个字段
# STR.INDEX('STR_PART')
a = 'c++|time|python'
print(type(a.index('python')))
print(type(a.index('python') > -1))
print(a.index('python') > -1)
print(a.index('python'))
>> <class 'int'>
>> <class 'bool'>
>> True
>> 9
# STR_PART IN STR
print('python' in a)
>> True
  • 正则表达式模块import re

re模块常用函数有

# re模块用来应对正则表达式
import re
  1. re.findall(‘待查字段’, ‘备查字符串’),返回结果是list格式
a = 'c++|time|python||Python|pythont'
re.findall('python',a)
print(type(re.findall('python',a)))
print(re.findall('python',a))
>> <class 'list'>
>> ['python', 'python']
  1. 字符串内置函数与正则表达式的区别

上面几个查询操作(都是常量),传统的字符串内置函数都可以操作,无法体现正则表达式的强大功能。

对规则(抽象)的使用,是正则表达式的本质。

# 搜索数字
import re
a = 'c++|time|python|7|P3yth1on|8pythont'
print(type(re.findall('\d', a)))
print(re.findall('\d', a))
>> <class 'list'>
>> ['7', '3', '1', '8']
  1. 正则表达式中相关定义
'python'   普通字符
'\d'       元字符(数字)
'a[cf]c'   字符集,acc或者afc
'\d'       概括字符集,等同于'[\d]'等同于'[0-9]'

元字符有很多,简单列常用的几个

'\d'   数字
'\D'   非数字
'\w'   包括数字和字母,不包括特殊符号(可以匹配_),等同于'[A-Za-z0-9_]'
'\W'   非单词字符,包括' '(空格)'\t' '\n'...
'\s'   空白字符,空格、制表符、回车等
'\S'   非空白字符(字母、符号、数字等各种字符)
[afe]   []内的字符是'或'关系,a或者f或者e
[c-f]   指的是cdef四个顺序字符
[^afe]   取反操作,不是a不是f不是e

.
.
.
2019-01-31 23:45:08写于济南

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python学习笔记|字串与正则表达式练习题答案 1. 练习题1: 题目:给定一个字串s,找出其中的连续的最长的数字串。 答案:可以通过正则表达式来匹配数字串,然后使用max函数找出最长的。 代码示例: import re def find_longest_num_str(s): num_str_list = re.findall('\d+', s) longest_str = max(num_str_list, key=len) return longest_str s = "ab1234c56789def" print(find_longest_num_str(s)) 输出:56789 2. 练习题2: 题目:给定一个字串s,将其中的每个空格替换为"%20"。 答案:可以通过正则表达式的sub函数来实现替换。 代码示例: import re def replace_space(s): new_s = re.sub(' ', '%20', s) return new_s s = "Hello World" print(replace_space(s)) 输出:Hello%20World 3. 练习题3: 题目:给定一个字串s,判断它是否为回文字串。 答案:可以使用切片操作将字串反转,然后与原字串进行比较。 代码示例: def is_palindrome(s): return s == s[::-1] s = "abcba" print(is_palindrome(s)) 输出:True ### 回答2: 以下是关于字串和正则表达式练习题的答案: 1. 给定一个字串s,编写一个函数,返回该字串的反转字串。 def reverse_string(s): return s[::-1] 2. 给定一个字串s,编写一个函数,返回是否是回文字串。 def is_palindrome(s): return s == s[::-1] 3. 给定一个字串s和一个字c,编写一个函数,返回字串s中字c的出现次数。 def count_char(s, c): return s.count(c) 4. 给定一个字串s,编写一个函数,返回字串s中的所有单词列表。 def split_words(s): return s.split() 5. 给定一个字串s,编写一个函数,返回字串s中的所有数字列表。 import re def extract_numbers(s): return re.findall(r'\d+', s) 这只是一些可能的答案,其中的解决方法可以有很多种。每个问题都有不同的解决方案,具体取决于个人的编程风格和需求。希望这些答案能够帮助你理解和学习Python中的字串和正则表达式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值