gpt4 book ai didi

python - Pandas 提取以 [\s\d_/] 开头并以 [\s\d_/] 结尾的信息

转载 作者:行者123 更新时间:2023-12-04 14:57:41 26 4
gpt4 key购买 nike

我正在尝试从以下路径中提取一组关键字,例如 ['lemon', 'apple', 'coconut'] 等"\var\prj\lemon_123\xyz","\var\prj\123_apple\coconut","\var\prj\lemonade\coconutapple",“\var\prj\苹果\柠檬”

预期的输出有点复杂:

<表类="s-表"><头>路径匹配的关键词<正文>"/var/prj/lemon_123/xyz"柠檬"/var/prj/123_apple/coconut"苹果、椰子"/var/prj/柠檬水/椰子苹果""/var/prj/苹果/柠檬"苹果,柠檬

请记住,第三行没有以/、\s、\d 或 _ 开头的确切单词这就是为什么没有匹配项。正则表达式有点像这样:\s\d_/[\s\d_/]。我尝试使用:

df['Paths'].str.findall(r'[^\s\d_/]lemon|apple|coconut[\s\d_/$]', flags=re.IGNORECASE)

但它仍然在第三行显示“柠檬”和“椰子”。

提前谢谢你。

最佳答案

你可以使用

df['Paths'].str.findall(r'(?<![^\W_])(?:lemon|apple|coconut)(?![^\W_])').str.join(", ")
df['Paths'].str.findall(r'(?<![^\W\d_])(?:lemon|apple|coconut)(?![^\W\d_])').str.join(", ")

参见 regex demo (和 regex demo #2 ),正则表达式匹配

  • (?<![^\W_]) - 除了非单词字符和下划线之外,不紧跟字符的位置(它是从中减去 _ 的左侧单词边界)
  • (?:lemon|apple|coconut) - 匹配组内任何单词的非捕获组
  • (?![^\W_]) - 除了非单词字符和下划线之外没有紧跟字符的位置(它是右手单词边界,从中减去 _)。

如果您使用 (?<![^\W\d_])(?![^\W\d_])你的单词边界将是 letter 边界,即它将是 \b从中减去数字和下划线。请参阅 Python 演示:

import pandas as pd
df = pd.DataFrame({"Paths":["/var/prj/lemon_123/xyz", "/var/prj/123_apple/coconut", "/var/prj/lemonade/coconutapple", "/var/prj/apple/lemon"]})
df['Paths'].str.findall(r'(?<![^\W_])(?:lemon|apple|coconut)(?![^\W_])').str.join(", ")
# 0 lemon
# 1 apple, coconut
# 2
# 3 apple, lemon
# Name: Paths, dtype: object

关于python - Pandas 提取以 [\s\d_/] 开头并以 [\s\d_/] 结尾的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67642279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com