【发布时间】:2020-01-03 05:38:41
【问题描述】:
我正在尝试掌握正则表达式,我遇到了包含在 str.extract 方法中的那个:
movies['year']=movies['title'].str.extract('.*\((.*)\).*',expand=True)
它应该检测和提取括号中的内容。所以,如果给定这个字符串:foobar (1995),它应该返回1995。但是,如果我打开终端并输入以下内容
echo 'foobar (1995)` | grep '.*\((.*)\).*'
匹配整个字符串,而不仅仅是括号之间的内容。我假设该方法使用 BRE 风格,因为括号是换行的,grep 也是如此(默认行为)。此外,regex 匹配整个字符串的蓝色和年份的绿色(捕获组)。我在这里错过了什么吗?正则表达式在 python 中完美运行
【问题讨论】:
-
grep 默认返回与您的模式匹配的 行。
-
另外,如果您在 MacOsX、IIRC 上,
grep已因删除 -P 选项而受到阻碍。 -
我真的一直忘记
grep返回匹配行 -
如果我在下面的回答回答了您的问题,请考虑支持/接受。否则,请发表评论,其中包含您仍需要澄清的细节。
标签: python regex pandas capturing-group