我想要取得'自动投放广告1-'或者‘核心词-’后面的字符,正则该如何写
时间: 2024-03-01 09:53:38 浏览: 102
你可以使用正则表达式中的正向肯定预查来实现这个需求。具体可以使用以下正则表达式:
```
(?<=(自动投放广告1-|核心词-)).*
```
这个正则表达式的含义是:匹配以"自动投放广告1-"或者"核心词-"开头的字符串,后面可以是任意字符(.*)。其中(?<=...)表示正向肯定预查,表示要求匹配的字符串前面必须是"自动投放广告1-"或者"核心词-"。注意,这个正则表达式需要使用支持正向肯定预查的正则引擎才能正常工作。
相关问题
在pandas里面,我想要取得ID列'自动投放广告1-'或者‘核心词-’后面的字符
你可以使用pandas中的str.extract()函数结合正则表达式来实现这个需求。具体可以使用以下代码:
```python
import pandas as pd
# 构造数据
data = {'ID': ['自动投放广告1-123', '核心词-456', '其他-789']}
df = pd.DataFrame(data)
# 使用正则表达式提取后面的字符
df['ID_suffix'] = df['ID'].str.extract('(?:自动投放广告1-|核心词-)(.*)', expand=False)
print(df)
```
输出结果如下:
```
ID ID_suffix
0 自动投放广告1-123 123
1 核心词-456 456
2 其他-789 NaN
```
在这个代码中,首先使用pandas的DataFrame构造了一个包含ID列的数据,然后使用str.extract()函数结合正则表达式提取后面的字符,并将结果保存在新的列ID_suffix中。注意,这个正则表达式的含义和之前提到的一样,使用了非捕获组(?:...)来匹配"自动投放广告1-"或者"核心词-",然后提取后面的任意字符。另外,如果ID列中不包含"自动投放广告1-"或者"核心词-",则对应的ID_suffix值为NaN。
怎么写一个290001-10-年月日-四位数字的正则
可以使用如下正则表达式来匹配290001-10-年月日-四位数字:
```
^290001-10-\d{4}-\d{4}$
```
其中,^ 表示字符串的开头,$ 表示字符串的结尾,\d 表示数字,{4} 表示重复4次。因此,\d{4}-\d{4} 表示匹配4个数字,中间用横线分隔。