在python中使用文本行中的Regex

时间:2015-06-11 17:51:47

标签: python regex

我正在尝试设置一个等于输入文件行中最后6个字符的变量。使用下面的代码我试图这样做,但我不知道这样做的语法,我得到一个语法错误。感谢。

for line in f:
    x = line[......$]

以下是具体错误:

File "bettercollapse.py", line 15
    x = line[......$]
               ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:1)

您可以slicing作为

执行此操作
for line in f:
    x = line[-6:]
  • 否定索引从字符串末尾访问第n个(此处为第6个)元素。

  • 该列后面没有任何内容,这意味着它会一直持续到字符串结尾。

    这就是从-6end字符串,最后6元素的元素。

示例

>>> string = "asdfasdfqwerqwerqwer"
>>> string[-6:]
'erqwer'

注意

它会计算文件中可能包含的\n。因此,为了安全起见,for循环可以写为

>>> with open('test', 'r') as input_file:
...     for line in input_file:
...             print line[-7:-1]
... 
erqwer
>>> 

旧版本将是

>>> with open('test', 'r') as input_file:
...     for line in input_file:
...             print line[-6:]
... 
rqwer

答案 1 :(得分:0)

Regexps不是正确的工具; slicing is

for line in f:
    print(line[-6:])  # print last 6 characters of line