我正在经历一个场景,我必须通过JDBC语句创建表,并且我正在接收表名作为方法参数。使用Oracle数据库,Oracle具有命名规则,如表名不应以以下字符$#_
中的任何一个开头。我只想从开头替换所有的特殊字符,而不是从中间或结尾替换。例如:#_PHYSICIANS
→ PHYSICIANS
##_#_PHYSICIANS
→ PHYSICIANS
##_#_PHYSICIANS_#_NAME
→ PHYSICIANS_#_NAME
我应该使用什么正则表达式来从一开始就替换这些字符?
4条答案
按热度按时间r9f1avp51#
无论你想从一开始去掉什么字符,你都可以把它们放在字符集中,然后使用这个正则表达式,
并替换为空字符串。
这里
^
标记字符串的开始,[#_]+
表示字符集中的一个或多个字符。Java代码
指纹
mzillmmw2#
试试这个,如果对你有效的话
https://regex101.com/r/wg9TEe/1
pkln4tw63#
^
表示从头开始,[...]
列出字符,...+
列出一个或多个字符。jaxagkaj4#
这将删除任何字符之前的部分。