我想在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]
你可以用
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
- 一个单词边界r
- 角色类中的一个字母r
- [ée]
gion
- 可选的gion
信s?
- 一个单词边界。