V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ColinZeb
V2EX  ›  正则表达式

问个正则表达式的问题

  •  
  •   ColinZeb · 2018-03-19 14:52:38 +08:00 · 1803 次点击
    这是一个创建于 2439 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题有点复杂,所以标题就这样吧。

    文本:

    2 . 1 年前,某法院推行办案责任制后,直接由独任法官、合议庭裁判的案件比例达到 99.9%,提交审委会讨论的案件仅占>0.1%。对此,下列说法正确的 是:匡三呵

    要求是匹配到题号,比如此文本中的 2,但是不能匹配到题目中的数字。 一般题后有个点,中文或英文,有时候题目开头就是一个数字,比如此文本(这个 1 年前是我手动加的,为了示例)。

    目前我写的是这样的

    (\d{1})(?:[\..][^??]*?\??|[\..][^??]*?下列[^是]+?是:?)

    我的代码由于兼容了其他情况,所以写的比较乱,大神们参考一下即可,不需要分析或者改我的代码。

    3 条回复    2018-03-19 15:14:06 +08:00
    lhx2008
        1
    lhx2008  
       2018-03-19 15:01:13 +08:00 via Android
    如果题号一定没有点的话,直接 split(".")[0]
    chairuosen
        2
    chairuosen  
       2018-03-19 15:04:39 +08:00
    题号一定是行首啊,^\d 不就得了?
    ColinZeb
        3
    ColinZeb  
    OP
       2018-03-19 15:14:06 +08:00
    @lhx2008 整套卷子是一个文本,换行的情况也不是很稳定,比如一个问题内就有可能有换行,这样就必须用多行模式匹配,^行不通

    @lhx2008 没懂什么意思,可以假设题号后是一定有点的(可能有例外,先不考虑),而点后一般是中文,但极个别是个数字,假设点后是数字,这时候就没法和题中的数字(比如此题中的 0.1%99.9%)区分开了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2730 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:25 · PVG 23:25 · LAX 07:25 · JFK 10:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.