- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从以下路径中提取一组关键字,例如 ['lemon', 'apple', 'coconut'] 等"\var\prj\lemon_123\xyz","\var\prj\123_apple\coconut","\var\prj\lemonade\coconutapple",“\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/
我正在尝试从以下路径中提取一组关键字,例如 ['lemon', 'apple', 'coconut'] 等"\var\prj\lemon_123\xyz","\var\prj\123_apple\co
每次当我尝试连接到发送 servage smpt 时,它都会给我一个错误: SMTP connect() failed. 我尝试以下设置: include('res/mailer/class.phpm
我正在尝试通过 cpanel cron 作业面板提交 MySQL 备份脚本,但我收到了我不理解的错误。我已经在我的 Ubuntu 上尝试了这个命令 mysqldump -u(USERNAME) -p(
我喜欢将测试程序的输出记录到带有时间戳的日志文件中。 我创建了以下 Makefile,但它不起作用。 “make”似乎在最后一刻根据需要计算 LOGFILE。 生成文件 LOGFILE=`date +
我是一名优秀的程序员,十分优秀!