【发布时间】:2010-12-16 06:11:10
【问题描述】:
使用正则表达式(在 c#.net 中)是否可以检查字符串的前一行?
例如,我需要选择上一行不是一系列星号的字符串(上一行:******)
【问题讨论】:
-
如果一行中有两行只包含星号怎么办?您要选择第一个吗?
使用正则表达式(在 c#.net 中)是否可以检查字符串的前一行?
例如,我需要选择上一行不是一系列星号的字符串(上一行:******)
【问题讨论】:
(?m)^(?<!^\*+\r?\n).+
(?m) 开启多行模式,因此^ 可以匹配一行的开头。后视检查前一行;如果成功(也就是说,它没有看到一行星号),.+ 会使用当前行。
【讨论】:
\r 换行。也许\n 应该是可选的?
\r?\n|\r 之类的东西。我想我们应该继续这样做,但即使在他们做出转换之前,我也几乎没有在野外看到过 \r。
$,它们都可以是可选的。所以是这样的:$\r?\n?。但你是对的,这是一个非常晦涩的案例。
【讨论】: