The motive of the attack was not immediately clear, but the incident follows a string of violent, often deadly assaults in Europe in recent months, with many claimed by the 'jihadist' Islamic State group.
Germany train attacker may be of Pakistani origin: authorities
"We can neither exclude nor affirm that this was a terrorist act," Saint Gallen regional police spokesman Bruno Metzger told the local St. Galler Tagblatt daily.
Police spokesman Hanspeter Kruesi told AFP the suspected attacker, who used flammable liquid to start the fire, was a Swiss national, and not of immigrant background.
He did not comment on whether the attacker's religious affiliation was known to police, who on Saturday evening searched his home in one of the cantons bordering Saint Gallen.
"According to the information we have for the time being, the 27-year-old Swiss man poured out a flammable liquid ... (which) caught fire," Saint Gallen police said in a statement.
The man, who "was also armed with at least one knife", carried out the attack on a moving train near Switzerland's eastern border with Liechtenstein and Austria, it said.
Seven people including the suspected attacker were admitted to hospital with burn and stab wounds, the statement said.
German police kill Afghan teen after train axe attack
One woman and the attacker were "very seriously injured", Kruesi told AFP, adding that both their lives were in danger.
He said no one had overpowered the attacker, but that he had been hurt in the fire.
He said he could not confirm reports that the attacker had attempted to commit suicide at the scene.
Kruesi also denied reports alleging that the man had targeted one specific woman on the train, dousing her with the flammable liquid.
"That is not correct. This was not directed concretely at one person," he said, adding that it remained unclear whether the attacker knew any of his victims.
The victims included two men aged 17 and 50, three women aged 17, 34 and 43 and a six-year-old child. Dozens of people were on the train at the time of the attack, the police statement said.
Police said the attack took place at around 2:20 pm (1220 GMT) near Salez station on a train running between Buchs and Sennwald.
Rescue workers rushed to the scene, including police, firefighters, ambulances and three rescue helicopters.
Salez station remains closed, and police said replacement buses had been set up.
German-Iranian shooter kills at least nine in Munich attack
Saint Gallen prosecutors have opened a criminal investigation into the attack.
The incident is the latest in a string of assaults in Europe in recent months that have left the continent on edge.
In January 2015, a 'jihadist' assault on the Charlie Hebdo satirical newspaper in Paris left 12 dead while another four died in an attack on a Jewish supermarket in the city.
In November 2015, a coordinated 'jihadist' attack claimed by IS in Paris left 130 people dead.
On March 22 this year, suicide bombers struck Brussels airport and a metro station in another coordinated 'jihadist' attack claimed by IS near the European Union headquarters, killing 32 people.
On July 14, a Tunisian man rammed a truck into crowds of revellers in the southern French city of Nice, killing 85 people.
Swiss neighbour Germany has also seen a string of attacks in recent weeks.
In July there were two attacks by migrants in the southern state of Bavaria -- an axe rampage on a train and a suicide bombing.
In Munich, an 18-year-old German-Iranian also went on a gun rampage in a shopping mall, leaving nine people dead.
In Belgium, a lone gunman armed with a Kalashnikov and other arms in August 2015 opened fire on a train but was overpowered by passengers.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ