假设我有一个包含以下内容的字符串:
ASFksdfasf a
Oh sadfafas
Yeasd: asdfaf
Oh asdfaf
Run Code Online (Sandbox Code Playgroud)
我想从以“ Oh”开头的字符串中删除行。我将如何处理?现在我知道我可以在正则表达式中执行以下操作:
\b[Oh]\S*
Run Code Online (Sandbox Code Playgroud)
但是我不确定如何将结果存储到变量中,即使那样,我相信它只能找到单词,而不是删除单词。
使用string.startswith功能。
if not string.startswith('Oh'):
Run Code Online (Sandbox Code Playgroud)
例子:
>>> s = '''ASFksdfasf a
Oh sadfafas
Yeasd: asdfaf
Oh asdfaf'''
>>> for line in s.splitlines():
if not line.startswith('Oh'):
print(line)
ASFksdfasf a
Yeasd: asdfaf
Run Code Online (Sandbox Code Playgroud)
我用您要用来执行此操作的表达式对OP进行了评论,但建议使用@AvinashRaj的答案(非正则表达式)。您问这将如何实施,这re.sub()就是答案!
演示:
string = '''ASFksdfasf a
Oh sadfafas
Yeasd: asdfaf
Oh asdfaf'''
import re
print re.sub(r'^Oh.*\n?', '', string, flags=re.MULTILINE)
Run Code Online (Sandbox Code Playgroud)
输出:
ASFksdfasf a
Yeasd: asdfaf
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6716 次 |
| 最近记录: |