日期:2014-05-20  浏览次数:20815 次

问题:正则表达式引用多次重复的分组无法只取它的一部分
本帖最后由 csd0204n 于 2013-07-24 00:16:32 编辑
我有选择题文本如下
QQQQ1
questiontext1
questiontext2
questiontext3
A.aaaa1 
B.aaaa2
C.aaaa3
QQQQ2
questiontext4
questiontext5
A.aaaa1 
B.aaaa2
C.aaaa3
D.aaaa4
E.aaaa5
想把选项变成横向排列,即替换换行为空格,变成如下形式
A.aaaa1 B.aaaa2 C.aaaa3 D.aaaa4
如果选项是标准的A.B.C.D.的话,我可以(A\..*)(?:\r\n)(B\..*)(?:\r\n)(C\..*)(?:\r\n)(D\..*)(?:\r\n)进行匹配
然后替换为\1 \2 \3 \4\r\n
但是实际的题目的匹配模式是这样([A-G]\..*\r\n)+,无法进行反向应用提取
请各位前辈指点小弟迷津吧!



正则表达式 标准

------解决方案--------------------
(?i)(?<=[A-G]\.[\s\S]+)\r\n

Regex.Replace("文本","(?i)(?<=[A-G]\.[\s\S]+)\r\n","");
------解决方案--------------------
(?<=[A-G]\..+)\r\n(?!Q)