【发布时间】:2012-08-23 12:54:02
【问题描述】:
你好,我知道*这个字符是用来匹配前面的字符零次或多次的,问题来了,这里的零次是什么意思。示例:script[\s]* 如果是这种情况,它是如何工作的,它会单独阻止脚本还是阻止脚本后跟空白。
【问题讨论】:
你好,我知道*这个字符是用来匹配前面的字符零次或多次的,问题来了,这里的零次是什么意思。示例:script[\s]* 如果是这种情况,它是如何工作的,它会单独阻止脚本还是阻止脚本后跟空白。
【问题讨论】:
*、+ 和 ? 修饰符应用于紧接在它们之前的表达式,因此在这种情况下,星号仅应用于 [\s]。如果您想将其应用于script[\s],您可以在整个表达式周围加上括号:(script[\s])*。如果您想阻止创建捕获组,请使用(?:),如下所示:
(?:script[\s])*
【讨论】:
在 Regexr.com 上查看 in action。
一些注意事项:
[]包裹\s:script\s*
\s 表示任何空格。【讨论】:
方括号表示字符类,\s 表示“空格字符”(即、\t 等)。所以这里* 将应用于[\s] 表达式,整个正则表达式的意思是“匹配script 后跟零个或多个空格字符”。
【讨论】:
您展示的正则表达式的工作方式如下:
1) 从字面上匹配字符“脚本”
2) 匹配单个字符,即“空白字符”(空格、换行符等)
2.1) 尽可能多次
因此它将匹配单个“脚本”以及“脚本__”(任意数量的空格)
【讨论】:
这里的零时间是什么意思?
和其他地方的意思一样。
例如,“我戳你零次”表示我根本没有戳你。
或者“我戳了你零次或多次”意味着我没有戳你,或者我戳了你一次,两次或......
示例:script[\s]* 如果是这种情况,它是如何工作的,它会单独阻止脚本还是会阻止脚本后跟空白。
正则表达式将匹配 "script" 或 "script " 或 "script " 等等。
【讨论】: