我有一个.txt文件,其中的内容属于这种类型:
DIRN straight-2
FOR minutes-5
DO crossing-6
WHAT Hall-7-13
DO take-10
WHAT Hall-3-15
Run Code Online (Sandbox Code Playgroud)
我想要的是另一个.txt文件,可以在python的帮助下生成,将其作为最终内容:
DIRN straight
FOR minutes
DO crossing
WHAT Hall-7
DO take
WHAT Hall-3
Run Code Online (Sandbox Code Playgroud)
即,我想删除每行中包含连字符的最后一个连字符" - "之后的所有内容.
请帮我解决python代码,并提前感谢您的帮助.
在Python 2或3中,这适用于:
s='''DIRN straight-2
FOR minutes-5
DO crossing-6
WHAT Hall-7-13
DO take-10
WHAT Hall-3-15'''
import re
for line in s.splitlines():
line=re.sub(r'^(.*)-\d+$',r'\1',line)
print line
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式在Python中执行非正则表达式:
for line in s.splitlines():
line=line.rpartition('-')[0] if '-' in line else line
print(line)
Run Code Online (Sandbox Code Playgroud)
或者 - 可能还是更好:
for line in s.splitlines():
line=line[:line.rindex("-")] if '-' in line else line
print line
Run Code Online (Sandbox Code Playgroud)
正则表达式更具体,因为它只匹配-\d+字符串的末尾.
任何情况下,打印:
DIRN straight
FOR minutes
DO crossing
WHAT Hall-7
DO take
WHAT Hall-3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |