我想用一個VIM正則表達式來查找可選對單詞。它們可以用其他詞語分開,但它們都必須位於同一行。 例如,如果我想匹配的開啓和關閉,那麼這些應該符合:gvim正則表達式匹配一對單詞
open foo close
open close
foo
這些不應該匹配:
open foo
open
foo close
close
我曾嘗試使用前瞻和回顧後發來匹配的話,但我似乎無法找到合適的組合。
我知道如何做到這一點的單個字符,但單詞讓我完全失去了。
下面是一個嘗試:
s/\(\(open\)\@=.*\(close\)\@=\)*
出於同樣的東西,但是用 'a' 和而不是 'C' '開放' 和 '關閉' 我能做到這一點:
s/^\(a[^ac]*c\|[^ac]\)*$
這將選擇這些線路(和一個空行)的:
acabcacabbbbcbbb
ac
abc
b
,但不會選擇
acbbc
ab
bc
a
c
這是我正在查找的功能,但帶有文字。
任何幫助將不勝感激。
謝謝! Nachum
編輯: 我正在一個縮進腳本,這會有所幫助。相反,我最終搜索並將單詞轉換爲單個字母。然後我使用了我已經熟悉的方法來匹配單個字符。至少它會在第一次轉換完成後縮短代碼。
即使他們沒有完美地工作,你也應該盡力而爲。這將幫助人們看到你想要做的事情,並讓你知道你做錯了什麼......還有人喜歡看到你試圖自己解決問題的證據。 – smerny
以我自己的嘗試更新。感謝您指出了這一點。 – nachum