正则表达式里的一个部分是(?s:.+?)
谁能解释一下?s:表示什么意思啊
(C#的正则表达式)
正则表达式

解决方案 »

  1.   

    (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号请参考:
    http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
      

  2.   

    (?s:.+?)
    (?s:exp)表示临时使用single line模式,表示后面表达式中的.可以匹配\n
    例如:
    原始文本abc
    3213abc
    def
    ghi正则
    (?s:.+\d).+
    这样(?s:.+\d)就可以从最开始匹配到所有数字为止,当遇到第一个不是数字的,则回溯1次,匹配结束
    (?s:.+\d)
    匹配到
    abc
    3213
    因为这个s只是临时的,修饰括号内为单行模式,外面的.依然不能匹配\n
    整个表达式匹配结果为:
    abc
    3213abc