我一直在學習BBEdit手冊中的Regex/grep,除了這個部分外,它一直很流暢(它接近尾聲,而不像以前的章節不提供解釋)。我有任何人都可以解釋這個正則表達式模式?
兩個大的部分困難是[^]部分,第一部分^(。*)
首先,是說什麼,但一個空間?那麼它是如何抓住X. Potter,在X之後留出空間?其次,手冊討論了非貪婪修飾符,這些修飾符默認情況下不會匹配最長的模式,並且意外地匹配您的整個短語。 ^(。*)如何不匹配整行並使其成爲\ 1?行的開始,零次或多次除了回車之外的任何事情?那怎麼能抓住Junior X. Potter作爲一種模式?我認爲我們必須在這裏使用一個非貪婪的限定詞,但它似乎不是。
最後,空間在正則表達式模式中究竟做了什麼?他們代表自己,(我認爲你不需要那麼做嗎?)或者一個簡單的空間(不需要做\ space來逃脫它)。
Rearranging Name Lists
You can use grep patterns to transform a list of names in first name first form to last name first order (for a later sorting, for instance). Assume that the names are in the form:
Junior X. Potter
Jill Safai
Dylan Schuyler Goode
Walter Wang
If you use this search pattern:
^(.*) ([^ ]+)$
And this replacement string:
\2, \1
The transformed list becomes:
Potter, Junior X.
Safai, Jill
Goode, Dylan Schuyler
Wang, Walter
啊,這很有道理,謝謝。 – 2011-12-27 21:14:33