如何在文本字符串Python中找到省略号?

时间:2017-10-02 16:24:52

标签: python regex

这里相当新的Python(和Stack Overflow!)。我有一个主题行数据(文本字符串)的数据集,我正在建立一个单词模型包。我正在为各种可能的场景创建标记0或1的新变量,但是我试图找出文本中有省略号(“...”)的位置。这是我开始的地方:

Data_Frame['Elipses'] = Data_Frame.Subject_Line.str.match('(\w+)\.{2,}(.+)')

输入('...')由于显而易见的原因不起作用,但建议使用上述RegEx代码 - 仍然无效。还试过这个:

Data_Frame['Elipses'] = Data_Frame.Subject_Line.str.match('.\.\.\')

没有骰子。

上面的代码shell适用于我创建的其他变量,但我也无法创建0-1输出而不是True / False(在R中是'as.numeric'参数)。任何帮助在这里也会受到赞赏。

谢谢!

1 个答案:

答案 0 :(得分:2)

使用search()代替match()会在文本中的任意位置发现省略号。如果您需要返回01,请转换为bool然后转换为int。

import re

for test in ["hello..", "again... this", "is......a test",  "...def"]:
    print int(bool(re.search(r'(\w+)\.{3,}', test)))

这与中间两项测试匹配:

0
1
1
0

在Python文档中查看search-vs-match以获得一个很好的解释。

显示匹配的字词:

import re

for test in ["hello..", "again... this", "is......a test",  "...def"]:
    ellipses = re.search(r'(\w+)\.{3,}', test)

    if ellipses:
        print ellipses.group(1)

给你:

again
is