在我們的 Python 系統中,我試圖隔離大小的第二部分,以確保我可以單獨保存這些值。
當我以多種不同的方式獲取資料時,我必須考慮很多場景!同時,我們的系統要求正確識別第 1 組中的所有內容,這增加了復雜性!
這是我到目前為止得到的:
(?<=[\/\-])\s*([A-Za-z] |\w ) ?(?!\d*\s*\)|\d*\)|\w*\))(?!\s*[\/\-] )
例子
在職的
這些是我的作業示例:
110/116
S/M
S / M
S/M(32-34)
110/116(10-12y)
110/116(S/M)
不作業
但是,我的正則運算式僅在上述示例中正常運行。
以下7個導致問題:
S/M / L /XL
S / M / L / XL
S/M / L/XL
S/M/L/XL
S/M/L/XL(30-32)
S/M / L/XL(30-32)
S/M / L / XL(30-32)
如何捕獲這些情況,如下表所示:
| 案件 | 輸入 | 組 1 中的預期捕獲 |
|---|---|---|
| 1 | S/M / L /XL |
"L /XL" |
| 2 | S / M / L / XL |
"L / XL" |
| 3 | S/M / L/XL |
"L/XL" |
| 4 | S/M/L/XL |
"L/XL" |
| 5 | S/M/L/XL(30-32) |
"L/XL" |
| 6 | S/M / L/XL(30-32) |
"L/XL" |
| 7 | S/M / L / XL(30-32) |
"L / XL" |
問題
如何"/"在中間捕獲 a ,包括 (like /XL)之后的整個部分,但沒有任何后面的括號 (like not the (30/32))。
S/M / L / XL(30-32)我只想捕獲的示例L / XL。
uj5u.com熱心網友回復:
您可以使用
(?<=[/-])\s*([A-Z] (?:\s*/\s*[A-Z] )?|\d )\b(?!\s*[/)-])
請參閱正則運算式演示。詳情:
(?<=[/-])- 緊接在/or前面的位置-\s*- 零個或多個空格([A-Z] (?:\s*/\s*[A-Z] )?|\d )- 第 1 組:一個或多個大寫字母,然后是可選的/char序列,其中包含零個或多個空格,然后是一個或多個大寫字母,或一個或多個數字\b- 單詞邊界(?!\s*[/)-])- 在當前位置的右側,不能有零個或多個空格,然后是/,)或-.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408158.html
標籤:
