提问人:Alex Bäumler 提问时间:1/16/2023 更新时间:1/16/2023 访问量:32
开始和结束问题之间的正则表达式匹配
RegEx Match between beginning and ending problem
问:
我想匹配“02A1”和“03”之间的所有内容,如果它介于两者之间有 14 个字符。
我的正则表达式模式如下所示:
(02A1)[0-9A-Z]{14}(03)
我的问题:它也匹配这个:
02A103EEFFFFF702A103
我做错了什么?“EEFFFFF7”显然不是在 02A1 和 03 之间,因为在 EEFFFFF7 之前有一个 03,之后有一个 02A1。
有人可以帮我吗?
答:
1赞
Wiktor Stribiżew
1/16/2023
#1
如果 14 个字母数字字符不能包含子字符串,请使用03
02A1(?:(?!03)[0-9A-Z]){14}03
如果它不能包含任何一个,请使用02A1
02A1(?:(?!03|02A1)[0-9A-Z]){14}03
请参阅此正则表达式演示。
细节:
02A1
- 一个字符串02A1
(?:(?!03|02A1)[0-9A-Z]){14}
- 出现 14 个大写 ASCII 字母或数字,不以 或 char 序列开头03
02A1
03
- 一个字符串。03
评论
1赞
Alex Bäumler
1/16/2023
第二个做到了,谢谢!
评论
02A1
03
02A1
03EEFFFFF702A1
03