现在有这样一个需求
有这样一个s
字符串
s = 'abc, acc, adc, aec, afc, ahc'
s
字符串中有以逗号分开的每组字符串,为了方便表述,将每组字符串暂时称为单词,现在就要提取其中单词的中间一个字母是c
或是f
的单词,关键是或
所以就要有一个抽象,能概括c
或f
,就有了字符集的概念了。
import re
s = 'abc, acc, adc, aec, afc, ahc'
r = re.findall('a[cf]c', s)
print(r)
--------------------------
输出:
['acc','afc']
普通字符可以和字符集一起使用,通常来说,普通字符是用来定界的。
普通字符可以在一个很大的字符串里面具体的确定某一个小段,普通字符一般来说都是这样的作用。
字符串的特性之一:出现在中括号中的字符是或的关系。
特性二:在中括号里第一个字符前加上向上的箭头符号^
,就是取反的操作
import re
s = 'abc, acc, adc, aec, afc, ahc'
r = re.findall('a[^cf]c', s)
print(r)
---------------------------------------------------
输出:
['abc', 'adc', 'aec', 'ahc']
把每个单词的中间字符串既不是c
也不是f
的都找出来了。
特性三:字符是有顺序的 [cdef]
可以写成[c-f]
import re
s = 'abc, acc, adc, aec, afc, ahc'
# r = re.findall('a[cdef]c', s)
r = re.findall('a[c-f]c', s)
print(r)
-----------------------------------------
输出:
['acc', 'adc', 'aec', 'afc']
把每个单词中间字符是 c
或d
或e
或f
的单词给找出来了。