【问题标题】:regex detecting single line正则表达式检测单行
【发布时间】:2021-04-20 10:41:42
【问题描述】:

需要正则表达式来检测单行中的字符串,我尝试了这个正则表达式\"(\\.|[^"\\])*\",但这也适用于多行 输入:

示例:


this is a "string
and the string ends here"

我希望正则表达式仅检测第一行中的字符串 ("string)

我该怎么办?

【问题讨论】:

    标签: regex flex-lexer lex lexical-analysis


    【解决方案1】:

    您的正则表达式可以识别多行,因为

    [^"\\]
    

    接受换行符:它接受除引号 (") 或反斜杠 (\) 以外的任何内容,并且换行符既不是引号也不是反斜杠。在排除字符列表中添加换行符 (\n)。

    请注意,在 (f)lex 中,. 实际上意味着 [^\n]:除了换行符之外的任何内容。这并不意味着“匹配任何东西”。所以\\. 匹配反斜杠,后跟换行符以外的任何内容。但是许多语言也允许您使用反斜杠来转义换行符:

    "This long string is \
    continued on a second line."
    

    当然,这不是必需的,字符串文字连接可能是一种更有用的语法。这完全取决于您的具体要求。

    【讨论】:

      【解决方案2】:

      (.*)\n

      我觉得这够了吗?

      \A(.*)\n

      如果有两行以上,这会有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-14
        • 1970-01-01
        • 2012-08-16
        • 2015-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多