[英]Function to extract substring from a string with multiple delimiters - python
我有一个包含分隔符的字符串列,我想创建一个 function 以仅针对包含分隔符的字符串提取 substring
当前的
EMAIL TITLE
johnson.k@abc.com Marketing Analyst
linda.m@abc.com 501.Software Engineer.MG3
kwami.k@abc.com Product Researcher
george.w@abc.com Managing Director
jessie.a@abc.com 64.Legal Consultant.I44
hiroda.t@abc.com Hardware Analyst.
我想在“。”之间提取 substring。 delimiters 仅适用于带有分隔符的字符串。 否则,文本应保持不变。
EMAIL TITLE NEW_TITLE
johnson.k@abc.com Marketing Analyst Marketing Analyst
linda.m@abc.com 501.Software Engineer.MG3 Software Engineer
kwami.k@abc.com Product Researcher Product Researcher
george.w@abc.com Managing Director Managing Director
jessie.a@abc.com 64.Legal Consultant.I44 Legal Consultant
hiroda.t@abc.com Hardware Analyst. Hardware Analyst.
我尝试使用以下代码创建 function 但它似乎不起作用
def clean_title(text):
match = re.search(r"\.(.*?)\.", text)
if match:
return match.group(1)
else:
return text
df['NEW_TITLE'] = df['TITLE'].apply(clean_title)
感谢任何形式的帮助,谢谢!
您可以使用替换方法:
df['NEW_TITLE'] = df['TITLE'].str.replace(r'^[^.]*\.([^.]+)\..*', r'\1', regex=True)
请参阅正则表达式演示。 正则表达式匹配所有出现的
^
- 字符串的开头[^.]*
- 零个或多个非点字符\.
- 一个点([^.]+)
- 第 1 组:一个或多个非点字符\.
- 一个点.*
- 行的 rest (尽可能多的除换行符之外的任何零个或多个字符)并替换为第 1 组值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.