繁体   English   中英

正则表达式:匹配从A开始直到但不包括B的所有内容

[英]regex: Match everything starting from A until, but not including, B

我有一个输入类似于此的文件:

CQUAD4 123123 123 234
CQUAD4 123123 123 234
CQUAD4 123123 123 234
PCOMP 123 123 123 123
123 123 123 123 123
123 123 1231 23
CQUAD4 123123 123 234
CQUAD4 123123 123 234
CQUAD4 123123 123 234
CQUAD4 123123 123 234
CQUAD4 123123 123 234
PCOMP 123 123 123 123
123 123 123 123 123
123 123 1231 23
432 234 2342 34
CQUAD4 123123 123 234
CQUAD4 123123 123 234
CQUAD4 123123 123 234
CQUAD4 123123 123 234

我想抓住

PCOMP 123 123 123 123
123 123 123 123 123
123 123 1231 23

PCOMP 123 123 123 123
123 123 123 123 123
123 123 1231 23
432 234 2342 34

我目前有PCOMP((.|\\n)*)CQUAD4但它捕获所有内容,包括CQUAD4块。 我应该使用什么来匹配从PCOMP开始,直到下一个CQUAD4实例之前的字符? 提前致谢。

你可能相处得很好

PCOMP[\s\S]*?(?=CQUAD)

请参阅regex101.com上的演示
(.|\\n)是你能想到的最低效的模式之一,真的。

使用*? 量词与懒惰的内部相匹配:

PCOMP((.|\n)*?)CQUAD4

默认情况下, *是贪婪的,并且会找到最大的匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM