正则表达式:如何用空格/连字符(不包括数字)捕获单词?

时间:2018-10-03 16:23:53

标签: python regex string pandas

我有一个看起来像这样的数据集:

#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

void send_SIGUSR1();

void main()
{
int pid;

if ((pid = fork()) < 0) {
    perror("Fork");
    exit(1);
}

if (pid == 0) {
    signal(SIGUSR1, send_SIGUSR1());
}

else
{
    printf("\nPARENT: sending SIGUSR1\n\n");
    kill(pid, SIGUSR1);
}
}

void send_SIGUSR1()

{
signal(SIGUSR1, send_SIGUSR1);
printf("CHILD: I have received a SIGUSR1\n");
}

我希望能够提取所有将排除数字的内容,使其看起来像这样:

Column1
-------
abcd - efghi 1234
aasdas - asdas 54321
asda-asd 2344
aasdas(asd) 5234

这是我当前的正则表达式:

Column2
-------
abcd - efghi
aasdas - asdas
asda-asd
aasdas(asd)

但是它仅提取出不包括括号和连字符的第一个单词。任何帮助将不胜感激...谢谢!

2 个答案:

答案 0 :(得分:2)

像使用replace

df.Column1.str.replace('\d+','')
Out[775]: 
0      abcd-efghi 
1    aasdas-asdas 
2        asda-asd 
3     aasdas(asd) 
Name: Column1, dtype: object
#df.Column1=df.Column1.str.replace('\d+','')

答案 1 :(得分:1)

仅删除数字会留下多余的空格字符。

此列表理解会删除所有数字并保留 空格字符,但在外面将其删除。

df['Column2'] = df['Column1'].apply(
                   lambda x: ''.join([i for i in x if not i.isdigit()]).strip())