簡體   English   中英

使用Regex設計捕獲十六進制數或整數

[英]Capturing a Hexadecimal number or an Integer using Regex design

我正在一個正在逐行讀取文件的項目中。 在這些行中,可能有一個兩位的十六進制數字。 例如EC,1F,A3、34。該行可以包括單詞,一位數字,字母或各種其他特殊字符,所有這些字符均由空格分隔。 如果存在此號碼,它將始終位於該行的同一位置。 如果存在,那么我需要對該行的數據做一些特殊的事情,而不是說是否存在一個數字。 我將這行代碼放入程序中用於其他用途的數組中。 關於捕獲此數字的設計,我計划使用正則表達式和match方法從原始字符串中獲取它。 這將存儲在其他地方的數據結構中,因為稍后我也將對此進行加減。

捕獲此方法的最有效方法是使用matcher.find()方法嗎? 還是因為我確切知道它的放置位置,我應該直接將其脫機? 我想包括匹配項,以防萬一用戶輸入十六進制數字時出錯並被一個數字取一個並檢查數字是否存在。 雙方都可以提供一些輸入空間。 我知道我可以抓取數組並使用十六進制數所在的索引值,但我很好奇, 更好的程序設計是為了計划一些小的差異,例如被空格隔開並已將其內置到您的程序中或保留它是簡單而僵化的嗎?

這是我目前正在獲取十六進制數的方式

wordSansNumber = wordToInsert.substring(0,5);
hexaDecimalNumber = wordToInsert.substring(5,14);
justHexaDecimalFinder = hexaDecimalFinder.matcher(hexaDecimalNumber);

如果匹配返回true,它將執行一些操作。

我認為基於位置從用戶那里獲取輸入不是一個好主意。 例如,用戶可能會意外添加空格。

我認為最好修整行,然后,如果數字可能僅在行的開頭,請找到行中的第一個空格,並在行的開頭和第一個空格之間提取十六進制。 然后,您當然必須對其進行驗證。

暫無
暫無

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

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