PHP正则表达式空格或换行符在前后

PHP正则表达式空格或换行符在前后,php,regex,newline,space,Php,Regex,Newline,Space,我需要在几行伪代码中检测开始和结束的位置 基本上,如果单词开始或结束前后都有空格或换行符,我需要记录匹配 空格/换行符识别很重要,因为开始或结束可能是出现在开始和结束之间的内容的一部分,即 start start_time = 2 end_time = 5 end …和变体。您可以使用此正则表达式捕获此块: (?<= |\A)start(?=\s)[\s\S]*(?<=\s)end(?=\s|\z) 什么是输入和预期输出Preg_OFFSET_CAPTURE允许我获取匹配的位

我需要在几行伪代码中检测开始和结束的位置

基本上,如果单词开始或结束前后都有空格或换行符,我需要记录匹配

空格/换行符识别很重要,因为开始或结束可能是出现在开始和结束之间的内容的一部分,即

start start_time = 2 end_time = 5 end
…和变体。

您可以使用此正则表达式捕获此块:

(?<= |\A)start(?=\s)[\s\S]*(?<=\s)end(?=\s|\z)

什么是输入和预期输出Preg_OFFSET_CAPTURE允许我获取匹配的位置,因此在一个包含许多起始块和结束块的大文件中,我可以获得位置,而无需存储块。。。输入一个文件,输出arraystart,0arrayend,32,这对捕获块非常有用。如果我找不到捕获索引的方法,这是一个解决方案。我不明白捕获索引的方法是什么。将文件加载到字符串中,然后捕获开始的s字符和结束的e字符的索引位置,即每个单词的开头。这样我就可以跳转到那个位置,而不必完全解析内容。谢谢。正如您之前所评论的那样,PREG_OFFSET_CAPTURE将对您有所帮助。
(?<= |\A)start(?=\s)[\s\S]*(?<=\s)end(?=\s|\z)