You got yourself into a very complicated way of addressing this task.
I would first do the extraction of product name and price using a Regex Split node and only then convert to Flow Variable for further processing. See the attached workflow.
So, I need to read the file as knime table one by one, extract data by regex, then append the knime table rows together, I perform in loop but doesn't work.
Sorry, "doesn't work" is too generic as a problem to be able to give any sound suggestion.
What exactly doesn't work? Which errors do you get? How does your workflow look like? If there is a loop, did you try to execute it step-by-step to check if the inner portion works properly?
your problem is that you are using a Variable Loop and this kind of loop (see description) does not aggregate the results at the Loop End node.
You need to slightly change your strategy by using a Chunk Loop to go row by row on your file table and convert a row to variable only inside the loop. In this way you can aggregate the results from multiple files.
See the picture below where your original loop is at the top and the new one at the bottom.