teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

テキスト修正

2018/08/12 23:09

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -12,11 +12,12 @@
12
12
 
13
13
  with open('./IP.txt') as f:
14
14
  log = f.read()
15
+ while True:
15
- m = re.search(pattern, log)
16
+ m = re.search(pattern, log)
16
- while m:
17
+ if not m:
18
+ break
17
19
  print(m.group())
18
20
  log = log[m.end():]
19
- m = re.search(pattern, log)
20
21
  ```
21
22
  > $ cat IP.txt
22
23
  ```text

1

テキスト修正

2018/08/12 23:09

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  こんにちは。
2
- 愚直に `while`で行ごとにループさせ、かつ、毎行の処理では`findall` ではなく、`search`を使ってみました。
2
+ 愚直に `findall` ではなく、`search`を使ってみました。
3
3
 
4
4
  > $ python -V
5
5
  **Python 3.7.0**
@@ -11,15 +11,12 @@
11
11
  pattern = r"(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"
12
12
 
13
13
  with open('./IP.txt') as f:
14
- line = f.readline()
14
+ log = f.read()
15
- while line:
16
- m = re.search(pattern, line)
15
+ m = re.search(pattern, log)
17
- while m:
16
+ while m:
18
- print(m.group())
17
+ print(m.group())
19
- line = line[m.end():]
18
+ log = log[m.end():]
20
- m = re.search(pattern, line)
19
+ m = re.search(pattern, log)
21
-
22
- line = f.readline()
23
20
  ```
24
21
  > $ cat IP.txt
25
22
  ```text