了解正则表达式

时间:2012-08-23 12:54:03

标签: java regex

嗨我知道字符*用于匹配前面的字符零次或多次,这是问题,这里的零时间是什么意思。例如:script[\s]*如果是这样的话,它是如何工作的,它会单独阻止脚本还是阻止脚本后跟空格。

5 个答案:

答案 0 :(得分:2)

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

(?:script[\s])*

答案 1 :(得分:0)

在Regexr.com上查看in action

一些注意事项:

答案 2 :(得分:0)

方括号表示字符类,\s表示“空格字符”(即\t等)。因此,此处*将应用于[\s]表达式,整个正则表达式表示“匹配script后跟零个或多个空格字符”。

答案 3 :(得分:0)

你展示的正则表达式将起作用:

1)从字面上匹配字符'script'

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

2.1)尽可能多次

所以它会匹配单个'script'以及'script_ _ '(任意数量的空格)

答案 4 :(得分:0)

  

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

与其他地方相同。

例如,“我戳了你一次”意味着我根本没有戳你。

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

  

示例:脚本[\ s] *如果是这样的话,它是如何工作的,它会单独阻止脚本还是阻止脚本后跟空格。

正则表达式匹配 "script""script ""script ",依此类推。