我需要一个正则表达式,它将获得括号中的所有文本,记住所有内容都由单词开始和字符----封装在最后。
输入示例:
BEGIN ) Tj\nET37.66 533 Td\n( Td\n(I NEED THIS TEXT ) Tj\nET\nBT\n37.334 Td\n(AND ALSO NEED THIS TEXT ) Tj\nET\nBT\n37.55 Td\n(------------
预期匹配项:
I NEED THIS TEXT
AND ALSO NEED THIS TEXT
我已经对外部模式做了一些类似(?<=BEGIN).*(?=\(--)
的操作,但是我不知道如何在括号中得到所有文本。
2条答案
按热度按时间bmp9r5qi1#
有了Python的PyPi正则表达式库,你可以使用
请参阅regex demo
(?s)
-一个DOTALL内联修饰符,使.
匹配换行符(?:\G(?!^)\)|BEGIN)
-BEGIN
或上一次成功匹配的结尾,紧接着)
(?:(?!\(--).)*?
-不启动(--
字符序列的任何字符,零个或多个但出现次数尽可能少\(
字符(?!--)
-紧接着(
之后,不应该有--
\K
-匹配重置运算符:之前匹配的内容将从整个匹配内存缓冲区中丢弃[^()]*
-除(
和)
之外的零个或多个字符j2cgzkjk2#
试试看:
Regex demo.
\(((?:(?!BEGIN).)*?)\)
-匹配( )
之间的所有内容,但不匹配BEGIN
(?=.*---)
-.*---
必须跟在此匹配之后