由于历史原因,导致数据库里一些字符串前面被错误的添加了 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()
|