【问题标题】:Regex expression - single quote without comma正则表达式 - 不带逗号的单引号
【发布时间】:2015-07-14 03:40:27
【问题描述】:

我需要一个正则表达式来查找在其前后都没有逗号的单引号。此外,单引号不应该是字符串中的第一个字符或最后一个字符,并且应该在每一侧都有一个字母数字字符

示例“Jane's book”会检测到“'apples','oranges'”

谁能帮忙?

【问题讨论】:

    标签: regex


    【解决方案1】:

    您可以将此正则表达式与环视一起使用:

    (?<=[a-zA-Z0-9])'(?=[a-zA-Z0-9])
    

    RegEx Demo

    【讨论】:

      【解决方案2】:

      类似:

      (?<=[A-Za-z0-9])\'(?=[A-Za-z0-9])
      

      应该为您提供支持正向前瞻和正向后视的语言的匹配项(如果我没记错的话,JavaScript 仅支持前瞻)。我没有测试上述内容,但我不确定你是否需要转义单引号......

      【讨论】:

        【解决方案3】:

        您需要适合您的语言的变体:

        .+'[^,]+.*
        

        ' 为您找到一个单引号。您通常不需要转义单引号。

        [^,] 允许除逗号以外的任何字符,+ 表示您至少需要一个这样的字符

        .* 表示您可以拥有任意数量的任何字符,因此将其放在您关心的内容之前和之后表示您的表达式可以出现在字符串中的任何位置。 .+ 表示您必须至少有一个非逗号字符。

        请注意,我在做一些假设,例如您要查找的字符串中只有一个 '。另外我假设你不关心,,除了' 之后。如果不是这样,您需要更具体地说明您的要求。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-29
          • 1970-01-01
          • 2017-04-28
          • 1970-01-01
          相关资源
          最近更新 更多