再次提出RegEx问题
我正在使用PCRE语法,我试图在简化表中找到匹配单元格的解决方案(如在trac中)
让我们说:
||cell||cell||cell||
||cell||cell||cell
||cell||||cell||
||other table cell||
好的,我需要从上面制作两个表,(第二行未命中结束,第三行在第二个单元格中有一个colspan = 2)
这个想法很简单我必须抓住每一次出现的||细胞 我很想知道甚至出现过|和所有文本到下一次出现的double |或新线,我也需要避免!在管道之前,知道距离线的起点。
我花了一整天的时间来尝试这样做......也许我愚蠢......或者.NET可能会有一些verid实现RegEx。
答案 0 :(得分:1)
这会抓住每个细胞的内容,这就是你在谈论的内容吗?
(?<=\|\|)[^|\r\n]*
请参阅demo
<强>解释强>
(?<= # look behind to see if there is:
\| # '|'
\| # '|'
) # end of look-behind
[^|\r\n]* # any character except: '|', '\r' (carriage
# return), '\n' (newline) (0 or more times
# (matching the most amount possible))
答案 1 :(得分:0)
经过几个小时的打架和扔东西后我终于明白了!看哪:
/(?<tr>\n\s*|\A\s*)?(?<td>(!?\|\|)+)(?<th>=)?(?<content>(?<left>[ ]*).*?(?<right>[ ]*))(?<fold>\|\|\s?\\)?(?=(!?\|\|)|(?<eol>\n|\Z))/gm