dave 发表于 2014-5-17 10:50:26

请教正则表达式

如何用正则表达式查找两个</>之间仅两行(两个回车)切每行均不含</>。谢谢

lewpad 发表于 2014-5-19 15:07:19

本帖最后由 lewpad 于 2014-5-19 15:09 编辑

你应该要找的是这样的的吧
</>
内容内容内容
正则正则正正这正则在
</>
在windows系统下正则表达式: </>\r\n([^</>].+)\r\n(.+[^</>])\r\n<\>   
其中 </>\r\n 就是表示第一行,([^</>].+)表示不含</>的第二行的内容,\r\n表示第二行末尾的换行符,(.+[^</>])表示不含</>的第三行的内容,\r\n表示第三行末尾换行符。
<\> 表示第四行。不知道是否符合您的要求。

lewpad 发表于 2014-5-20 10:38:34

本帖最后由 lewpad 于 2014-5-20 11:00 编辑









@ryuya谢谢指教,但还是不明白,[^是对后面的所有字符取非,还是对字符串<\>取非?




ryuya 发表于 2014-5-20 11:01:00

[^</>]   ←這樣是一個字元 任何非 < 非 / 也非 > 的字元
正確寫法是 (.+[^<][^/][^>])

不過我不會這樣寫就是了...

btw其實我根本看不懂樓主的問題

lewpad 发表于 2014-5-20 17:53:13

ryuya 发表于 2014-5-20 11:01 static/image/common/back.gif
[^]   ←這樣是一個字元 任何非 < 非 / 也非 > 的字元
正確寫法是 (.+[^])



从regexbuddy 验证是这样的:

dave 发表于 2014-5-21 20:30:58

谢谢两位赐教,好好学习消化一下。

dave 发表于 2014-5-21 20:54:31

本帖最后由 dave 于 2014-5-21 20:56 编辑

我的意思是如何通过正则表达式来检查出不符合下列格式的行或者词条
</>
内容内容内容
正则正则正正这正则在
</>

ryuya 发表于 2014-5-21 23:34:30

Regular Expression不是設計來找例外的
所以一步到位的方法,沒有。

幾個 tricks 可以使用
比方說先尋找全部 </> 的總數
然後把文本拿去餵 MdxBuilder 它會告訴你 entries 總數
兩個數目一致,那就沒問題

如果不一致
找出問題方法也很多種
例如:排除正常,剩下的就是異常
把 ^</>$ 代換成 < / >
剩下殘存的 </> 就是異常處

或是用 </>\n.*?</> 和 </>.*?\n</> 找例外

dave 发表于 2014-5-24 21:31:22

本帖最后由 dave 于 2014-5-24 21:33 编辑

谢谢ryuya指教!

a5484826 发表于 2014-7-15 16:07:10

受教了。。。{:10_273:}
页: [1]
查看完整版本: 请教正则表达式