Как получить номер строки в методе поиска regex в Python [duplicate]

Недавно я обнаружил, что использование strtolower() может вызвать проблемы, когда данные усекаются после специального символа.

Решение заключалось в использовании

mb_strtolower($string, 'UTF-8');

mb_ использует MultiByte. Он поддерживает больше символов, но в целом немного медленнее.

1
задан user2468610 12 June 2013 в 23:51
поделиться

2 ответа

Это должно решить вашу проблему, предполагая, что у вас есть правильное регулярное выражение в переменной 'phrase'

import re

# compile regex
regex = re.compile('[0-9]+')

# open the files
with open('Corpus.txt','r') as inputFile:
    with open('OutputLineNumbers', 'w') as outputLineNumbers:
        # loop through each line in corpus
        for line_i, line in enumerate(inputFile, 1):
            # check if we have a regex match
            if regex.search( line ):
                # if so, write it the output file
                outputLineNumbers.write( "%d\n" % line_i )
5
ответ дан themadmax 27 August 2018 в 02:40
поделиться

вы можете сделать это напрямую с bash, если ваше регулярное выражение является дружественным grep. покажите номера строк, используя «-n»

, например:

grep -n  "[1-9][0-9]" tags.txt

выведет совпадающие строки с номерами строк, включенными сначала

2569:vote2012
2570:30
2574:118
2576:7248
2578:2293
2580:9594
2582:577
2
ответ дан Mahmoud Said 27 August 2018 в 02:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: