Regular-Expression
正則表達式:匹配 n 個字元一次,在 n 個字元之後
我正在尋找一個在任何字元出現 56 次後匹配任何字元 11 次的正則表達式。
例子:
this is a long formatted line with any char. 56 timesmatchI wantNothingShouldMatchHere
- 我想要的是:
matchI want
- 我嘗試了什麼:
(?<=.{56}).{11}
但這匹配
matchI want
ANDNothingShou
ANDldMatchHere
。
- 這個:
(?<=.{56}).{11}?
產生相同的結果。
謝謝你的幫助 !
注意:在我的情況下,此正則表達式旨在與
re
python 模組一起使用
這應該有效;強制 56 個字元位於
^
行首:(?<=^.{56}).{11}
sed -E 's/.{56}(.{11}).*/\1/'
Sed 的想法是匹配整行並且只擷取所需的 11 個字元。它們被擷取在內部
()
,整條線被該組替換。有關更詳細的說明,請參閱使用 \1 保留部分模式。如果要忽略不包含至少 56+11=67 個字元的行,請使用
sed -nE 's/.{56}(.{11}).*/\1/p' file