【问题标题】:Understanding Regex [closed]了解正则表达式 [关闭]
【发布时间】:2012-08-23 12:54:02
【问题描述】:

你好,我知道*这个字符是用来匹配前面的字符零次或多次的,问题来了,这里的零次是什么意思。示例:script[\s]* 如果是这种情况,它是如何工作的,它会单独阻止脚本还是阻止脚本后跟空白。

【问题讨论】:

    标签: java regex


    【解决方案1】:

    *+? 修饰符应用于紧接在它们之前的表达式,因此在这种情况下,星号仅应用于 [\s]。如果您想将其应用于script[\s],您可以在整个表达式周围加上括号:(script[\s])*。如果您想阻止创建捕获组,请使用(?:),如下所示:

    (?:script[\s])*
    

    【讨论】:

      【解决方案2】:

      在 Regexr.com 上查看 in action

      一些注意事项:

      【讨论】:

      • Regexr 非常有用,谢谢.. :)
      【解决方案3】:

      方括号表示字符类,\s 表示“空格字符”(即\t 等)。所以这里* 将应用于[\s] 表达式,整个正则表达式的意思是“匹配script 后跟零个或多个空格字符”。

      【讨论】:

        【解决方案4】:

        您展示的正则表达式的工作方式如下:

        1) 从字面上匹配字符“脚本”

        2) 匹配单个字符,即“空白字符”(空格、换行符等)

        2.1) 尽可能多次

        因此它将匹配单个“脚本”以及“脚本__”(任意数量的空格)

        【讨论】:

          【解决方案5】:

          这里的零时间是什么意思?

          和其他地方的意思一样。

          例如,“我戳你零次”表示我根本没有戳你。

          或者“我戳了你零次或多次”意味着我没有戳你,或者我戳了你一次,两次或......

          示例:script[\s]* 如果是这种情况,它是如何工作的,它会单独阻止脚本还是会阻止脚本后跟空白。

          正则表达式将匹配 "script""script ""script " 等等。

          【讨论】:

            猜你喜欢
            • 2015-10-10
            • 2011-10-10
            • 1970-01-01
            • 1970-01-01
            • 2012-04-08
            • 2017-11-13
            • 2015-04-27
            • 1970-01-01
            相关资源
            最近更新 更多