
由于历史原因,导致数据库里一些字符串前面被错误的添加了 n 个 FOO 标志,可能的情况如下:
FOO 尊敬的张先生, FOO FOO 您好! FOO FOO FOO ... 已经收到您的信件 每一个字符串开头,都有可能出现 n 个 FOO (也可能没有),怎么简单的处理,把字符串开头的 FOO 全部去除? (没有用 replace 和正则 re.sub()的原因,是字符中间部分的 FOO 不能去除)
1 crayygy 2019-09-19 20:02:25 +08:00 via iPhone 用正则,加上行开头就行了 |
2 andyholo 2019-09-19 20:05:47 +08:00 via Android bar 在哪? |
3 lishunan246 2019-09-19 20:10:44 +08:00 ^(FOO )*(.*)$ |
4 Trim21 2019-09-19 20:19:06 +08:00 via Android 不喜欢用正则的话 while s.startswith ():s=s.replace (,,1 ) |
5 sunwei0325 2019-09-19 20:36:57 +08:00 |
6 miniyao OP |
10 miniyao OP @crayygy @lishunan246 @Trim21 @sunwei0325 跑出来一个非常诡异的情况: >>> s = '[FOO][FOO][FOO]KO' >>> re.sub(r'^([\[FOO\]\s])*', '', s) 'KO' >>> s = '[FOO][FOO][FOO]OK' >>> re.sub(r'^([\[FOO\]\s])*', '', s) 'K' KO 和 OK 匹配出来的结果,KO 剩下了 ‘KO’,OK 怎么吧 O 给丢了,只有 K ? |
12 sunwei0325 2019-09-19 21:18:58 +08:00 |
13 jinliming2 2019-09-19 21:20:03 +08:00 via iPhone @miniyao ^(\[FOO\]\s*|FOO\s*)+ |
14 miniyao OP |
15 lululau 2019-09-19 21:50:39 +08:00 update t set c = regex_substr(c, regex, substitution) |
16 ysc3839 2019-09-19 22:05:59 +08:00 via Android |
18 miniyao OP @noqwerty 试过的,里面的 [FOO] 个数不确定,[FOO] 后面可能还有空格,lstrip 可以剥,但搞不干净。 |
19 qwertyegg 2019-09-20 00:48:53 +08:00 先 replace("FOO", ""),然后 trim() |