簡體   English   中英

如何處理文本文件中兩個單詞之間的大間隙,而我的程序沒有將它們作為空格讀取?

[英]How do I handle large gaps between two words in text file that aren't being read by my program as spaces?

我正在嘗試讀取包含搜索信息的文本文件:IP 地址、搜索時間、搜索詞和點擊的鏈接。 我正在嘗試逐行遍歷文件並僅提取每個文件的 IP 地址,我通過將每個字符添加到字符串來執行此操作,直到遇到該行的第一個空格。 但是,正如您在屏幕截圖中看到的,IP 地址和時間之間的差距比海平面和壓力之間的差距要大得多。 這個差距沒有被注冊為一個空間,程序在整條線上找到的第一個空間是海平面和壓力之間的空間。 因此,我無法僅提取 IP。 有沒有辦法解決這個問題或修復它?

文本文件中的數據截圖

根據您的語言, '/\\s+/'應該可以解決問題。

請參閱通過一個或多個空格或制表符分解字符串

  1. 您可以使用正則表達式來提取 ip 地址,將每一行提取到一個字符串中,然后您可以使用類似的東西。

字符串行 = extract_line();

String ip_pattern = "^(?:[0-9]{1,3}.){3}[0-9]{1,3}$";

模式 r = Pattern.compile(ip_patter);

匹配器 m = r.matcher(line);

m.group(0);

如果找到,則具有 ip 地址,否則它將為空。

如果一行中存在多個 ip 地址,您可以將它們編入索引 m.group(n)。

在以下鏈接的幫助下派生:

  1. http://www.tutorialspoint.com/java/java_regular_expressions.htm

  2. https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html

大空間是制表符。 搜索“\\t”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM