在特殊字符Python RegEx之后获取字符串

时间:2018-10-04 18:06:57

标签: python regex

如何在特殊字符后获取字符串?

例如,我想在

中的/之后获取字符串

my_string = "Python/RegEx"

输出为:RegEx

我尝试过:

h = []
a = [ 'Python1/RegEx1' , 'Python2/RegEx2', 'Python3/RegEx3']

for i in a: 
    h.append(re.findall(r'/(\w+)', i))
print(h)

但是输出是:[['RegEx1'], ['RegEx2'], ['RegEx3']]

我需要:['RegEx1', 'RegEx2', 'RegEx3']

预先感谢

RegEx初学者

4 个答案:

答案 0 :(得分:0)

在列表中循环浏览另一个for循环。

例如:

df$mean <- sapply(strsplit(df$counts, ','), function(x) mean(as.numeric(x)))

答案 1 :(得分:0)

对于这样的情况,每个项目只有一个/,可以使用map.split('/')每个项目,然后从每个项目中提取.split('/')[1]来创建列表

a = [ 'Python1/RegEx1' , 'Python2/RegEx2', 'Python3/RegEx3']
a = list(map(lambda x: x.split('/')[1], a))
# ['RegEx1', 'RegEx2', 'RegEx3']

列表理解

a = [i.split('/')[1] for i in a]

展开:

l = []
for i in a:
    i = i.split('/')
    l.append(i[1])

答案 2 :(得分:0)

您可以在[0]前面使用findall

>>> h = []
>>> for i in a:
...     res = re.findall(r'/(\w+)', i)
...     if res:
...           h.append(res[0])
...
>>> print (h)
['RegEx1', 'RegEx2', 'RegEx3']

答案 3 :(得分:0)

使用.extend()

for i in a: 
    h.extend(re.findall(r'/(\w+)', i))

使用+=(另一种调用.extend的方式):

for i in a: 
    h += re.findall(r'/(\w+)', i)

使用打开包装:

for i in a: 
    h.append(*re.findall(r'/(\w+)', i))