正则表达式查找文本文件中出现的所有字符串。怎么样?

时间:2014-02-23 17:12:16

标签: python regex csv python-3.x io

步骤1:我生成Pi的25位十进制数并将其保存到output.txt文件中。

from decimal import *

#Sets decimal to 25 digits of precision
getcontext().prec = 25

def factorial(n):
    if n<1:
        return 1
    else:
        return n * factorial(n-1)

def chudnovskyBig(): #http://en.wikipedia.org/wiki/Chudnovsky_algorithm
    n = 1
    pi = Decimal(0)
    k = 0
    while k < n:
        pi += (Decimal(-1)**k)*(Decimal(factorial(6*k))/((factorial(k)**3)*(factorial(3*k)))* (13591409+545140134*k)/(640320**(3*k)))
        k += 1
    pi = pi * Decimal(10005).sqrt()/4270934400
    pi = pi**(-1)

    file = open('output.txt', 'w', newline = '')
    file.write(str(Decimal(pi)))
    file.close()
    print("Done.")

    #return pi

chudnovskyBig()

步骤2:我打开此文件并使用正则表达式查找某个字符串的所有匹配项。

import re

file = open('output.txt', 'r')

lines = file.read()

regex = input("Enter Combination: ")
match = re.findall(regex, lines)
print('Matches found: ' + str(len(match)))
file.close()
input("Press Enter to Exit.")

如何更改查找所有匹配代码以查看包含许多这些组合的csv文件(每行一个)而不是一次只有一个?

csv文件的格式:

1 \ t2 \ t3 \ t4 \ t5 \ t6 \ r \ n ..我想?

1

2 个答案:

答案 0 :(得分:1)

我相信你应该使用这个方法:

  

re.findall(图案,字符串);

更多信息:

How can I find all matches to a regular expression in Python?

由于搜索字词“匹配”和“正则表达式”会返回大量不相关的链接,因此上述链接不容易追踪。

答案 1 :(得分:1)

以下是如何使用re.findall

的示例
import re
pattern = '[A-Za-z0-9-]+' # pattern for matching all ASCII characters, digits, and repetitions of
                            # them (+)
lines = "property"           # adding input string, raw_input("Enter Combination: ")
ls = re.findall(pattern,lines)
print ls