【问题标题】:How can I use RegEx to differentiate between screen resolutions?如何使用 RegEx 区分屏幕分辨率?
【发布时间】:2014-10-24 20:02:00
【问题描述】:

我正在尝试创建一个匹配从 0 到 600 的数字范围的 RegEx 表达式,以便我可以轻松区分小型移动设备和平板电脑/台式机。我正在使用 Qualtrics 的调查软件来完成剩下的工作 - 我只需要 RegEx 表达式。

但是,我不能 100% 确定 Qualtrics 如何接收数据。我相信它采用以下格式:

360x640
320x568
320x480
1920x1080
360x640
1280x800
320x568
1920x1080
360x640
1280x800
1920x1080
480x800
320x480
1280x800
1366x768
320x568
1280x800

我在哪里测试第一个数字,例如'x' 字符之前的数字。

这是我尝试过的一些没有用的 RegEx:

([0-9]{1,2}|[1-4][0-9]{2}|600)*x

该代码可以识别“x”之前的数字,但它不会停止在 600 - 它可以识别“x”之前的所有数字(例如,从 000 到 9999)。

如何获得我想要的范围?请,谢谢!

注意:我已经尝试使用 RegEx 数字范围生成器 here,但它不能满足我想要完成的任务。

【问题讨论】:

    标签: regex screen range resolution qualtrics


    【解决方案1】:

    我愿意:

    \b(?:600|[1-9]\d?|[1-5]\d{2})x
    

    地点:

    \b 是一个单词边界,它确保前面没有数字
    (?: ) 是一个非捕获组
    600 匹配 600
    [1-9]\d? 匹配从 1 到 1 的数字99
    [1-5]\d{2} 匹配从 100 到 599 的数字

    【讨论】:

    • 我会赞成你的,因为它解释得很好,但我没有足够高的声誉:(
    【解决方案2】:

    我不相信有宽度低于 100,所以你可以使用这个模式:

    ^([1-5][0-9]{2}|600)x
    

    【讨论】:

      【解决方案3】:

      如果您的输入包含所有这些行,您可以使用此正则表达式,但使用 m 修饰符:

      ^([0-5]\d{2}|600)x
      

      Live demo

      【讨论】:

      • @hwnd 实际上不是,但她的输入是有效的,她只是想取出想要的。
      • 谢谢!一位朋友给了我以下内容:^([0-9]|[1-9][0-9]|[1-7][0-9][0-9]|800)x([0-9 ]|[1-9][0-9]|[1-7][0-9][0-9]|800)$ -- 基本相同,但更长,还包括第二个数字,可能如果我以后需要它会很有用。有没有办法简化上述正则表达式?另外,你能向我解释一下“m”修饰符吗?谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多