1

使用正则表达式我需要找到以空格开头\pard和结尾的所有内容,但同时又没有 \intbl

接下来,您可以看到RTF文本文件。太感谢了。

{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil Lucida Console;}{\f1\fnil\fcharset0 Lucida Console;}{\f2\fnil\fcharset0 Arial Black;}}
{\colortbl ;\red0\green0\blue0;}
{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\trowd\trgaph10\trleft-32\trrh240\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3
\clbrdrl\brdrw15\brdrs\brdrcf1\clbrdrt\brdrw15\brdrs\brdrcf1\clbrdrr\brdrw15\brdrs\brdrcf1\clbrdrb\brdrw15\brdrs\brdrcf1 \cellx966\clbrdrl\brdrw15\brdrs\brdrcf1\clbrdrt\brdrw15\brdrs\brdrcf1\clbrdrr\brdrw15\brdrs\brdrcf1\clbrdrb\brdrw15\brdrs\brdrcf1 \cellx2000\pard\intbl\qr\cf1\lang11274\f1\fs16 val1\cell val2\cell\row\trowd\trgaph10\trleft-32\trrh240\trpaddl10\trpaddr10\trpaddfl3\trpaddfr3
\clbrdrl\brdrw15\brdrs\brdrcf1\clbrdrt\brdrw15\brdrs\brdrcf1\clbrdrr\brdrw15\brdrs\brdrcf1\clbrdrb\brdrw15\brdrs\brdrcf1 \cellx966\clbrdrl\brdrw15\brdrs\brdrcf1\clbrdrt\brdrw15\brdrs\brdrcf1\clbrdrr\brdrw15\brdrs\brdrcf1\clbrdrb\brdrw15\brdrs\brdrcf1 \cellx2000\pard\intbl\qr val3\cell val4\cell\row\pard\li-30\cf0\lang0\f0\fs24\par
\lang11274\b\f2\fs48 Texto linea1\b0\f1\fs24\par
\par
Texto linea2\lang0\f0\par
}
4

1 回答 1

1

那将是

\\pard(?:(?!\\intbl)[^ ])*[ ]

解释:

\\pard       # Match "\pard".
(?:          # Try to match...
 (?!\\intbl) #  (unless we're at the start of the string "\intbl")
 [^ ]        #  any character except space
)*           # ...any number of times.
[ ]          # Then match a space.

在您的示例文件中,这仅匹配\pard\li-30\cf0\lang0\f0\fs24\par

于 2012-07-05T12:22:44.350 回答