[英]RegEx to replace entire string with first two values
我試圖想出一個正則表達式來用前兩個值替換整個字符串。 例子:
整根琴弦:AO SMITH 100108283 4500W/240V 旋入式元件,11"
前兩個值:AO SMITH
整根弦:BRA14X18HEBU / P11-042 / 310-470NL BRASS 1/4 x 1/8 HEX BUSHING
前兩個值:BRA14X18HEBU / P11-042
整根弦:兩孔 PIPE 表帶 4" 008004EG 72E 4
前兩個值:TWO-HOLE PIPE
需要注意的是,我想保留任何類型的特殊字符而不是計算它們,例如“/”和“-”。 我編寫的當前代碼沒有,而是將新值完全留空。 只有上面的第一個例子有效。
這是我到目前為止所得到的:
匹配值:
^(\w+) +(\w+).+$
新價值:
$1 $2
一種選擇是使用單個捕獲組並在替換中使用它。
^(\w+(?:-\w+)?(?: +\/)? +\w+(?:-\w+)?).+
模式匹配:
^
字符串開頭(
捕獲組 1
\w+(?:-\w+)?
將 1+ 個單詞字符與可選部分匹配以匹配-
和 1+ 個單詞字符(?: +\/)?
可選匹配/
+\w+(?:-\w+)?
將 1+ 個單詞字符與可選部分匹配以匹配-
和 1+ 個單詞字符)
關閉第 1 組.+
匹配任何字符的 1+ 次(該行的 rest) 如果可以有超過 1 個連字符,您可以使用*
代替?
Output
AO SMITH
BRA14X18HEBU / P11-042
TWO-HOLE PIPE
更廣泛的匹配可能是匹配單詞之間的非單詞字符
^(\w+(?:-\w+)*[\W\r\n]+\w+(?:-\w+)*).+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.