如何使用正则表达式捕获两个标记之间的多个子字符串?

时间:2019-07-09 23:13:25

标签: python regex

我知道如何捕获两个标记之间的子字符串的单个实例:

Python 3 How to get string between two points using regex?

我用以下字符串测试了该方法:

 <input multiple="multiple" name="photos[]" type="file"> 

我想获取这些标记'$ {'和'}'之间的所有子字符串,但它仅获取第一个。

 public function update(Request $request)
{
 $product = Product::with('ProductsPhoto')->find($request->product_id,'id');

  if ($request->hasFile('photos')){
        //Add the new photo
        foreach ($request->photos as $photo) {
            $filename = $photo->store('public/photos');
            ProductsPhoto::create([
                'product_id' => $product->id,
                'filename' => $filename
            ]);
        } 
        $oldFilename = $product->ProductsPhoto->filename;
        //Update the database
         $product->ProductsPhoto->filename = $filename;

         //Delete old photo
         Storage::delete($oldFilename);
    }

     $product->save();
  }

我如何得到所有这些?

1 个答案:

答案 0 :(得分:1)

您需要一个正则表达式方法,该方法将在字符串中查找所有匹配项。您应该尝试re.findall('\$\{(.+?)\}', text)re.finditer('\$\{(.+?)\}', text)。第一个将返回一个列表,第二个将返回一个可迭代。