I have a powershell script to find particular instances and then export them to CSV. Here's an example of the way the code works

$items = "Hello Tim", "Hola Bob", "Hello Susan" 
$filter = $items | Select-String -Pattern "Hello"
$filter | Select-Object Line, Matches | Export-Csv "C:\log.csv"
Invoke-Item "C:\log.csv"

When I run the Select-Object in PS, it's nicely formatted info like this:

powershell

However, when I export to CSV, it exports the whole object and writes it as the following string: System.Text.RegularExpressions.Match[]

csv export

How can I get it to export just the first match or a listing of all matches into a single field when writing to CSV?

Quickly note that Matches is an array which may create issues exporting to a csv.
Try joining the array into a string with a chosen delimiter. I used "::" in my example.

$filter | Select Line, @{Expression={$_.Matches -join "::"}; Label="Matches"} | Export-Csv "C:\log.csv"