I make the following query
neo4j-sh (?)$ start n=node(*) where n.name =~ \'u(.*)\' return n;
==> +-----------------------+
==> | n |
You can't do that in Cypher (as far as I know)--regex is just for matching.
If it's always just a single letter in front of it, you can take the substring:
start n=node(*)
set n.userId = substring(n.name, 1)
I had the same issue, so I developed a tiny Neo4j server plugin that lets you run regular expressions over REST API and against string node properties for matching/splitting/substituting purposes. It can return the results inside Neo4j console or save them to a property.
Have a look at it, maybe you find it useful: https://github.com/mszargar/Regx4Neo
It takes just a minute to install, but you will have to restart Neo4j for it to take effect.