![](/img/trans.png)
[英]Read file line by line and separate each line by spaces by javascript
[英]Regex to read Invoice Line Details from line with space delimiter and spaces in description
對於任何 REGEX 大師...我正在嘗試讓特定的 RegEx 讀取發票行中的值並將它們返回到命名組中,如下所示。
發票行看起來像
ABC08-388 THIS IS DECSCRIPTION WITH SPACES AND APOSTROPIES 80’s ctn 1 1 0 99.90 99.90 9.99 109.89
1233 ANOTHERLINE W/O APOSTROPHEIES each 100 100 0 1.05 105.00 10.50 115.50
XYZ-1234 ANOTEHR LINE WITH APOSTROPHE’S AND SLASH/S box 1 1 0 8.60 8.60 0.00 8.60
分離是
Part Number - From Start of line until the first space
Description - Everything between Part Number and Box Description
Box Description - From end of Description to next group (Space separator)
Qty Ordered - Integer (Space separator)
Qty Delivered - Integer (Space separator)
Qty Back Order - Integer (Space separator)
Box Cost - Decimal number (Space separator)
Line Total Ex Tax - Decimal number (Space separator)
Line Tax -Decimal number (Space separator)
Line Total Incl Tax EOL
我正在尋找類似的東西 - 但我無法讓所有的東西正常工作......請任何幫助將不勝感激
^(?<SupplierPartNumber>([A-Za-z0-9-_]+)) (?<SupplierDescription>([.])).(?<BoxQty>([0-9]+([\,\.][0-9]+)){1}(?<DeliveredQty>([0-9]+([\,\.][0-9]+)){1}(?<OnBackOrder>([0-9]+([\,\.][0-9]+)){1} (?<BoxCost>([0-9]+([\,\.][0-9]+)){1}(?<LineTotalEx>([0-9]+([\,\.][0-9]+)){1}(?<GSTAmount>([0-9]+([\,\.][0-9]+)){1} (?<LineTotalInc>([0-9]+([\,\.][0-9]+)){1}
看看這個,希望對你有幫助。 您可能需要編輯各個組的內容以對每個部分使用正確的格式,但希望您能明白這一點。
(?<SupplierPartNumber>^[A-Za-z\d-_]+)\s(?<Description>[a-zA-Z\s\d’\/]+[a-zA-Z])\s(?<BoxQty>\d+)\s(?<DeliveredQty>\d+)\s(?<OnBackOrder>\d+)\s(?<BoxCost>\d+\.\d+)\s(?<LineTotalExTax>\d+\.\d+)\s(?<LineTaxDecimal>\d+.\d+)\s(?<LineTotal>\d+.\d+$)
按每個要求打破正則表達式,以便更容易看到:
(?<SupplierPartNumber>^[A-Za-z\d-_]+)\s
(?<Description>[a-zA-Z\s\d’\/]+[a-zA-Z])\s
(?<BoxQty>\d+)\s
(?<DeliveredQty>\d+)\s
(?<OnBackOrder>\d+)\s
(?<BoxCost>\d+\.\d+)\s
(?<LineTotalExTax>\d+\.\d+)\s
(?<LineTaxDecimal>\d+.\d+)\s
(?<LineTotal>\d+.\d+$)
正則表達式演示以查看實際操作。
您會注意到我在上述解決方案中將兩個描述合二為一。 這是因為我不太清楚描述在哪里完成和盒子描述從哪里開始。 從您的示例中假設 Description 僅包含大寫字母,則正則表達式可能如下所示:
(?<SupplierPartNumber>^[A-Za-z\d-]+)\s(?<Description>[A-Z\s\d’\/]+[A-Z])\s(?<BoxDescription>[a-zA-Z\s\d’\/]+[a-zA-Z])\s(?<BoxQty>\d+)\s(?<DeliveredQty>\d+)\s(?<OnBackOrder>\d+)\s(?<BoxCost>\d+\.\d+)\s(?<LineTotalExTax>\d+\.\d+)\s(?<LineTaxDecimal>\d+.\d+)\s(?<LineTotal>\d+.\d+$)
(?<SupplierPartNumber>^[A-Za-z\d-]+)\s
(?<Description>[A-Z\s\d’\/]+[A-Z])\s
(?<BoxDescription>[a-zA-Z\s\d’\/]+[a-zA-Z])\s
(?<BoxQty>\d+)\s(?<DeliveredQty>\d+)\s
(?<OnBackOrder>\d+)\s
(?<BoxCost>\d+\.\d+)\s
(?<LineTotalExTax>\d+\.\d+)\s
(?<LineTaxDecimal>\d+.\d+)\s
(?<LineTotal>\d+.\d+$)
上述案例的正則表達式演示。
您將更好地了解描述和框描述之間的分隔,因此請根據需要編輯相應的組。 如果您需要更多幫助,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.