如何在特殊字符后获取字符串?
例如,我想在
中的/
之后获取字符串
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初学者
答案 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))