我不理解正则表达式中的()。
例如,这些行之间有什么区别:
例如,这些行之间有什么区别:
"/hello/"
"/(hello)/"
hellohello hello!
如果我想找到两个“hello”单词,我可以这样做:
/hellohello/
或者,我可以这样做:
/(hello){2}/
根据您所编写的内容,这两个示例之间实际上没有区别。但是括号允许您对该组字符应用后置逻辑(例如,正如另一位发帖者所举的例子,{2}之后会说明字符串“hello”连续输入两次而没有任何其他字符在中间 - hellohello。括号还允许您使用“或”语句 - “/(hello|goodbye)/”将匹配“hello”或“goodbye”中的任意一个。
然而,它们最强大的用途是从字符串中提取数据,而不仅仅是匹配它,它可以让您从字符串中提取数据并对其进行操作。
例如,在PHP中,如果您执行以下操作:
preg_replace( "/hello (.+)/i", "hello how are you?", $holder );`
那么 $holder[1] 将包含“hello ”之后的所有文本,这种情况下是“how are you?”
/(hello){50}/
这样的东西。然而这只是一个非常有限的演示。 - Sampson