【问题标题】:Find character pattern using regex使用正则表达式查找字符模式
【发布时间】:2016-08-16 17:30:07
【问题描述】:

我正在尝试查找所有出现的特殊字符 / 由字母或数字包围。

经过多次尝试,我想出了以下正则表达式,几乎可以满足我的需要:

(?![a-z0-9])\/(?=[a-z0-9])

这适用于这些示例:

aa/aa
123/123
aa/123

但是,如果两个正斜杠在一起,则失败:

http://regexr.com/

在这种情况下,它匹配 http 之后的第二个正斜杠,这是我不想要的。

如何修改此正则表达式以满足我的需要?

编辑:当两个正斜杠在一起时,我确实想要匹配。如果单个正斜杠被字母数字字符包围,我只想匹配。

【问题讨论】:

  • 那么您希望结果是http://regexr.com/ 未被检测为匹配项?

标签: javascript c# regex match string-matching


【解决方案1】:

您需要一个积极的后向小组,如下所示:

(?<=[a-z0-9])+\/{1}(?=[a-z0-9]+)

但是,根据http://regexr.com/,javascript 不支持它。

在例如蟒蛇http://pythex.org/

【讨论】:

    【解决方案2】:

    简单!

    (?![a-z0-9])\/+(?=[a-z0-9])
    

    您应该将+ 设置为 1 更多出现的字符。所以你应该写\/+ 而不仅仅是\/

    【讨论】:

      【解决方案3】:

      试试这个

      (!?[a-z0-9])\/(?=[a-z0-9])
      

      【讨论】:

        【解决方案4】:

        试试这个

        [a-z0-9](\/)[a-z0-9]
        

        Regex demo

        说明:
        ( … ):捕获组sample
        \:转义特殊字符sample

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-01-28
          相关资源
          最近更新 更多