我真的被以下正則運算式問題所困擾:
我想洗掉字串的最后一段,但前提是“-”在字串中出現一次。
例子:
BOL-83846-M/L -> 應該匹配 -M/L 并將其洗掉
B0L-026O1 -> 不應該匹配
D&F-176954 -> 不應該匹配
BOL-04134-58/60 -> 應該匹配 -58/60 并將其洗掉
BOL-5068-4 - 6 jaar -> 應該匹配 -4 - 6 jaar 并將其洗掉(可能在多個搜索/替換步驟中)
如果正則運算式需要兩個(或更多)步驟來洗掉它,那將沒有問題。我現在有
[^-]*$
但在 sublime 中它匹配 B0L-026O1 和 D&F-176954
需要你的幫助
uj5u.com熱心網友回復:
您可以匹配-捕獲組中的第一個,然后匹配第二個-直到字串末尾以將其洗掉。
在替換中使用捕獲組 1。
^([^-\n]*-[^-\n]*)-.*$
^字串的開始(捕獲組 1[^-\n]*-[^-\n]*匹配-除-(或換行符,如果您不想跨行)以外的字符之間的第一個
)捕獲組 1-.*$匹配第二個-和該行的其余部分
正則運算式演示
uj5u.com熱心網友回復:
您可以匹配以下正則運算式。
^[^-\r\n]*-[^-\r\n]*(?=-)
演示
^[^-\r\n]*-[^-\r\n]*貪婪地匹配字串開頭僅包含一個連字符的部分。正向前瞻(?=-)斷言字串中至少有兩個連字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/334535.html
標籤:正则表达式
