使用python在文本中搜索正则表达式

问题描述 投票:-1回答:1

我想在s1中搜索区域。如果我的文本包含“region”或“région”或“regions”或“régions”,则我想返回1,而在另一种情况下,我想返回0。我写下面的代码,但它不起作用

s1 = pd.Series(['here is region', 'my regions', 'régionally', 'région','régions','regions','region']) s1.str.contains('r.gion[s][^a-zA-Z]', regex=True).astype(int)在这种情况下,结果必须是

[1,1,0,1,1,1,1]

python regex pandas
1个回答
2
投票

你可以用

s1.str.contains(r'\br[ée]gions?\b').astype(int)

如果你想将正则表达式保存在一个文件中,然后读入并用作变量,只需在那里写\br[ée]gions?\b

测试:

>>> import pandas as pd
>>> s1 = pd.Series(['here is region', 'my regions', 'régionally', 'région','régions','regions','region'])
>>> s1.str.contains(r'\br[ée]gions?\b').astype(int)
0    1
1    1
2    0
3    1
4    1
5    1
6    1
dtype: int32

细节

  • \b - 一个单词边界
  • qazxsw poi - qazxsw poi chart
  • r - 角色类中的一个字母
  • r - [ée]
  • gion - 可选的gion
  • s? - 一个单词边界。
© www.soinside.com 2019 - 2024. All rights reserved.