python - 用于匹配字符串的正则表达式加上子字符串的第一次出现
问题描述
我正在寻找解决以下问题的正则表达式。在下面的示例中,我正在提取值VITMINC
测试字符串
1. As VITMINC##1-0-1##1 days.As
2. amlodipine ##vitamin c##diclo##tabramycin eye drop##metformin##0-0-1##15 days. amlodipine ##1-0-1## 3 days.
3. Xylometazoline(P) Nasal drops##0-1-0##2 days. Paracetamol 500mg tab##0.5-0-0-0##2 days. VITMINC##0.5-0-0##2 days. Chlorpheniramine maleate 4mg tab##0-1-0##2 days.
4. VITMINC##0-0-0-1##2 days.
5. amlodipine##vitamin c##diclo##tabramycin eye drop##metformin##0-0-1##15 days.
上述字符串的示例输出
1. VITMINC##1-0-1##1 days
2. ##vitamin c##diclo##tabramycin eye drop##metformin##0-0-1##15 days
3. VITMINC##0.5-0-0##2 day
4. VITMINC##0-0-0-1##2 days
5. vitamin c##diclo##tabramycin eye drop##metformin##0-0-1##15 days
我正在尝试使用下面的正则表达式,但没有得到预期的输出
VITMINC##.*##([0-9]+ [days]){1}?
VITMINC##.*##([0-9]+ [days])*?
VITMINC##.*##[0-9]+ days
VITMINC##.*##([0-9]+ days){1}?
对不起,如果我的解释不好。并提前感谢。
解决方案
假设您实际上不想#
在比赛开始时使用字符(示例 2 和 5 是自相矛盾的),您可以使用
(?i)VITA?MIN\s*C##.*?##[0-9]+ days
请参阅正则表达式演示。
细节
(?i)
- 不区分大小写的修饰符VITA?MIN
-VITAMIN
或VITMIN
\s*
- 0 个或多个空格C##
- 一个C##
子串.*?
- 除换行符之外的任何零个或多个字符,尽可能少##
- 一个##
子串[0-9]+ days
- 1 个或多个数字、空格、days
子字符串。
推荐阅读
- scala - 在 Scala 中追加/联合多个数据帧
- linux - 通过 Cron Job 在 VM (Ubuntu) 中运行 Python 脚本
- python - 在 Airflow 中检索 SQL 值
- struts2 - 视图jsp中的struts1和动作控制器中的struts2
- vue.js - 通过 vue-cli-service 停止查看文件夹
- sql - 递归查询计算父值
- go - 如何读取十六进制文件并将内容转换为golang中的字节片?
- android - 无法使用 MockK 模拟 MuxStatsExoPlayer
- python - 如何从 Numpy 中的二维数组的行中减去一维数组
- spring - 如何验证以百里香叶形式提交的一对多文件