我正在尋找一個grep表達式,它可以讓我檢查標點符號之前是否有空格或開始行;我想確保標點符號一致。我有什麼是這個(爲簡單起見,我在這個例子中取代[\.,;:\!?]
只需,
):grep表達式匹配空格或開始行
~ > echo -e "some, text\nsome ,text\n,some text" | grep " ,"
2:some ,text
這是確定的,但忽略了第三種情況。我試過[^ ],
和"(^\|),"
,但都沒有工作。這裏有什麼正確的表達?
我正在尋找一個grep表達式,它可以讓我檢查標點符號之前是否有空格或開始行;我想確保標點符號一致。我有什麼是這個(爲簡單起見,我在這個例子中取代[\.,;:\!?]
只需,
):grep表達式匹配空格或開始行
~ > echo -e "some, text\nsome ,text\n,some text" | grep " ,"
2:some ,text
這是確定的,但忽略了第三種情況。我試過[^ ],
和"(^\|),"
,但都沒有工作。這裏有什麼正確的表達?
這是什麼工作。我不認爲你可以假設-P選項可用(它不在默認的OSX grep中)。但grep的-E可以讓你避免逃避過:
echo -e "some, text\nsome ,text\n,some text" | grep -E "(|^),"
使用regex
的perl
風味積極向後看斷言嘗試:
echo -e "some, text\nsome ,text\n,some text" | grep -P '(?<=\s|^),'
國債收益率:
some ,text
,some text
這樣的作品,雖然上面'-E'選擇是一個簡單的解決方案。謝謝:) – Jens
這應該工作: echo -e "some, text\nsome ,text\n,some text" | grep -P "(|^),"
-P
會將其解釋爲一個類似Perl的正則表達式,可以防止不必要的字符轉義。
謝謝,-E很好地工作(所以做mohit6up的答案,因爲我使用MacPorts)。 – Jens