REGEX 用于匹配字符串加上第一次出现的子字符串
REGEX for matching string plus first occurrence of the sub string
我正在寻找可以解决以下问题的正则表达式。在下面的示例中,我正在提取 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 是 self-contradictory),您可以使用
(?i)VITA?MIN\s*C##.*?##[0-9]+ days
参见regex demo。
详情
(?i)
- 不区分大小写的修饰符
VITA?MIN
- VITAMIN
或 VITMIN
\s*
- 0 个或更多白色spaces
C##
- C##
子串
.*?
- 除换行字符外的任何零个或多个字符,尽可能少
##
- ##
子串
[0-9]+ days
- 1 个或多个数字,space,days
子字符串。
我正在寻找可以解决以下问题的正则表达式。在下面的示例中,我正在提取 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 是 self-contradictory),您可以使用
(?i)VITA?MIN\s*C##.*?##[0-9]+ days
参见regex demo。
详情
(?i)
- 不区分大小写的修饰符VITA?MIN
-VITAMIN
或VITMIN
\s*
- 0 个或更多白色spacesC##
-C##
子串.*?
- 除换行字符外的任何零个或多个字符,尽可能少##
-##
子串[0-9]+ days
- 1 个或多个数字,space,days
子字符串。