
由于历史原因,导致数据库里一些字符串前面被错误的添加了 n 个 FOO 标志,可能的情况如下:
FOO 尊敬的张先生, FOO FOO 您好! FOO FOO FOO ... 已经收到您的信件 每一个字符串开头,都有可能出现 n 个 FOO (也可能没有),怎么简单的处理,把字符串开头的 FOO 全部去除? (没有用 replace 和正则 re.sub()的原因,是字符中间部分的 FOO 不能去除)
1 crayygy 2019 年 9 月 19 日 via iPhone 用正则,加上行开头就行了 |
2 andyholo 2019 年 9 月 19 日 via Android bar 在哪? |
3 lishunan246 2019 年 9 月 19 日 ^(FOO )*(.*)$ |
4 Trim21 2019 年 9 月 19 日 via Android 不喜欢用正则的话 while s.startswith ():s=s.replace (,,1 ) |
5 sunwei0325 2019 年 9 月 19 日 |
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 年 9 月 19 日 |
13 jinliming2 2019 年 9 月 19 日 via iPhone @miniyao ^(\[FOO\]\s*|FOO\s*)+ |
14 miniyao OP |
15 lululau 2019 年 9 月 19 日 update t set c = regex_substr(c, regex, substitution) |
16 ysc3839 2019 年 9 月 19 日 via Android |
19 qwertyegg 2019 年 9 月 20 日 先 replace("FOO", ""),然后 trim() |