查看: 876|回复: 9
打印 上一主题 下一主题

[求助] 请教正则表达式

[复制链接]
  • TA的每日心情
    开心
    2022-4-30 14:04
  • 签到天数: 368 天

    [LV.9]以坛为家II

    7

    主题

    1036

    回帖

    8647

    积分

    进士

    Rank: 8Rank: 8

    积分
    8647

    灌水大神章QQ 章

    跳转到指定楼层
    1
    发表于 2014-5-17 10:50:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    如何用正则表达式查找两个</>之间仅两行(两个回车)切每行均不含</>。谢谢
  • TA的每日心情
    奋斗
    昨天 08:43
  • 签到天数: 766 天

    [LV.10]以坛为家III

    19

    主题

    1163

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10958
    2
    发表于 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表示第三行末尾换行符。
    <\> 表示第四行。不知道是否符合您的要求。

    点评

    假如第三行是>結尾就失效了  发表于 2014-5-19 15:22
  • TA的每日心情
    奋斗
    昨天 08:43
  • 签到天数: 766 天

    [LV.10]以坛为家III

    19

    主题

    1163

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10958
    3
    发表于 2014-5-20 10:38:34 | 只看该作者
    本帖最后由 lewpad 于 2014-5-20 11:00 编辑









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




    该用户从未签到

    20

    主题

    222

    回帖

    4029

    积分

    贡士

    Rank: 6Rank: 6

    积分
    4029

    灌水大神章小蜜蜂章笑傲江湖章

    4
    发表于 2014-5-20 11:01:00 | 只看该作者
    [^</>]   ←這樣是一個字元 任何非 </ 也非 > 的字元
    正確寫法是 (.+[^<][^/][^>])

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

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

    点评

    受教了,再次谢谢  发表于 2014-5-20 17:45
  • TA的每日心情
    奋斗
    昨天 08:43
  • 签到天数: 766 天

    [LV.10]以坛为家III

    19

    主题

    1163

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10958
    5
    发表于 2014-5-20 17:53:13 | 只看该作者
    ryuya 发表于 2014-5-20 11:01
    [^]   ←這樣是一個字元 任何非 < 非 / 也非 > 的字元
    正確寫法是 (.+[^])

    从regexbuddy 验证是这样的:

    QQ截图20140520175031.jpg (26.67 KB, 下载次数: 0)

    QQ截图20140520175031.jpg

    QQ截图20140520175119.jpg (26.98 KB, 下载次数: 0)

    QQ截图20140520175119.jpg
  • TA的每日心情
    开心
    2022-4-30 14:04
  • 签到天数: 368 天

    [LV.9]以坛为家II

    7

    主题

    1036

    回帖

    8647

    积分

    进士

    Rank: 8Rank: 8

    积分
    8647

    灌水大神章QQ 章

    6
     楼主| 发表于 2014-5-21 20:30:58 | 只看该作者
    谢谢两位赐教,好好学习消化一下。
  • TA的每日心情
    开心
    2022-4-30 14:04
  • 签到天数: 368 天

    [LV.9]以坛为家II

    7

    主题

    1036

    回帖

    8647

    积分

    进士

    Rank: 8Rank: 8

    积分
    8647

    灌水大神章QQ 章

    7
     楼主| 发表于 2014-5-21 20:54:31 | 只看该作者
    本帖最后由 dave 于 2014-5-21 20:56 编辑

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

    该用户从未签到

    20

    主题

    222

    回帖

    4029

    积分

    贡士

    Rank: 6Rank: 6

    积分
    4029

    灌水大神章小蜜蜂章笑傲江湖章

    8
    发表于 2014-5-21 23:34:30 | 只看该作者
    Regular Expression不是設計來找例外的
    所以一步到位的方法,沒有。

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

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

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

  • TA的每日心情
    开心
    2022-4-30 14:04
  • 签到天数: 368 天

    [LV.9]以坛为家II

    7

    主题

    1036

    回帖

    8647

    积分

    进士

    Rank: 8Rank: 8

    积分
    8647

    灌水大神章QQ 章

    9
     楼主| 发表于 2014-5-24 21:31:22 | 只看该作者
    本帖最后由 dave 于 2014-5-24 21:33 编辑

    谢谢ryuya指教!

    该用户从未签到

    0

    主题

    2

    回帖

    8

    积分

    童生

    Rank: 2

    积分
    8
    10
    发表于 2014-7-15 16:07:10 | 只看该作者
    受教了。。。{:10_273:}