我正在循环通过一张表,XXXXX列出了名字和姓氏。
下面的代码可以工作,但当使用首字母时,显然会出现严重错误。我可以把名字和姓氏分开,并使用一个长度子句。
但我想知道,如果名字和姓氏的长度不到两个,是否有必要忽略它们?
create table reg_test(id integer, note_text text)
insert into reg_test values (1,'sjdfhsdjh sdfsdf ksdfksf John dsfsfgsdfhj Smith dsfsfsdf');
update reg_test
SET note_text = regexp_replace(note_text, 'J|Smith' , 'XXXXX', 'ig')
where id = 1;
1条答案
按热度按时间9lowa7mx1#
在正则表达式中,您可以强制使用一系列字符。例如,如果坚持字符串长度在3到5个字符之间,则可以使用{3,5}。下限和上限都是可选的。
在下面的示例中,要消除“JS”等2个字符的首字母,可以使用
J[A-Z]{2,}
(J后面跟2个或更多字母),这意味着它必须至少是3个字母。更新正则表达式:
你会看到它更新了“John”,而不是“JS”。