を使用していますか? 私は知っている、それはTOKENの前ですが、残念ながら、文字列にはTOKENという2つの部分文字列があります。 sed s/.*TOKEN//
を使用すると、/ABCに私の文字列を作る が、私は/TOKEN/XYZ/TOKEN/ABC サンキュー必要です!削除サブストリングは、私はパスを持っている正規表現
答えて
分割統治:
$ echo 'Garbage.Containing/Slashes/And.Dots/TOKEN/xyz/TOKEN/abc' |
sed -n 's|/TOKEN/|\n&|;s/.*\n//;p'
/TOKEN/xyz/TOKEN/abc
更新2:あなたはこれを試しましたか?
s!.*\(/TOKEN.+TOKEN.*\)!\1!
UPDATE:のみTOKEN
の最初のoccuranceのため
s/.*?TOKEN//
.*?
試合:申し訳ありませんが、非欲張りマッチがSED
でサポートされていない、これを試してみてください。
私の悪い、それを – aorcsik
sedの代わりにperlを使用できますか?
perl -pe 's!.*?(?=/TOKEN)!!'
echo 'GarbageContainingSlashesAndDots/TOKEN/xyz/TOKEN/abc' | perl -pe 's!.*?(?=/TOKEN)!!'
# returns:
/TOKEN/xyz/TOKEN/abc
Sedは貪欲でない一致をサポートしていません。 Perlはそうです。
+1を修正:ありがとうございます!知っておいて、それは "非貪欲なマッチング"と呼ばれています。 –
echo "./a//...b/TOKEN/abc/TOKEN/xyz"|sed 's#.*\(/TOKEN/.*/TOKEN/.*\)#\1#'
OPの例では動作しますが、一般的な問題ではありません。タイトル "regexpを使用して最初のトークンまで部分文字列を削除してください" - 前のトークンではなく最後のトークンまで削除します。 – eumiro
@eumiro:* shrug *「文字列に2つの部分文字列がある」と言われています。 –
+1:これは私がこれを考慮しなかったのは恥ずかしいものです:-)実際に私の特別なケースではうまくいくでしょう!ありがとう! –
は、私はあなたがbashのがあると思うので、それはあなたが持っているシンプルな
$ s="GarbageContainingSlashesAndDots/TOKEN/xyz/TOKEN/abc"
$ echo ${s#*/}
TOKEN/xyz/TOKEN/abc
として、あるいは場合することができルビー(1.9+)
echo $s | ruby -e 'print gets.split("/",2)[-1]'
私はWindows環境を持っています。基本的なcygwin/mingwツールへのツールの使用を最小限に抑えたいと思っていました。 –
文字列の「ガベージ」部分にスラッシュが含まれているので、どちらのテクニックもこの場合は機能しません。 –
ありがとうございます、私は何か新しいことを学びました。 最後に、私はgrep
を使用し
echo "GarbageContainingSlashesAndDots/TOKEN/xyz/TOKEN/abc" | grep -o "/TOKEN/.*/TOKEN/.*"
-oはgrepを使用して、私の目標を達成することができました:
word='GarbageContainingSlashesAndDots/TOKEN/xyz/TOKEN/abc'
echo $word | grep -o '/.*'
文字列の「ガベージ」部分にスラッシュが含まれているので、どちらのテクニックもこの場合は機能しません。 –
あなたは正しいです、それは私の部分に少しスペースがありました。それは次のようにする必要があります: 'echo $ word | grep -o '/ TOKEN。*' ' – mohit6up
- 1. 正規表現は、私は、次のファイルを持っている
- 2. 正規表現:私は大きなテキストを持っている
- 3. が、私はこのコードを持っている正規表現
- 4. 正規表現は、私はJavaScriptでこの正規表現を持っているマッチ全体
- 5. 私はこの正規表現パターンを持っている正規表現は、Java
- 6. 正規表現は、私は、この正規表現を持っている特殊文字
- 7. Pythonは、私はこのテキストを持っている私の正規表現
- 8. 単純な正規表現は、私がこれを持って
- 9. 私はこのような正規表現を持って
- 10. 正規表現は、私は、フォームのxmlファイルを持っている
- 11. 正規表現は、私がURLのように持って
- 12. 正規表現は、私はこのHTML持っ
- 13. Groovyの正規一致するすべてのもの、私はこの正規表現を持っている
- 14. 正規表現以外の文字を削除する正規表現
- 15. 正規表現(php)の特定条件を削除する正規表現
- 16. 正規表現私はリンクしてい
- 17. 正規表現は、私は、このデータを持ってするpreg_match
- 18. JavaScriptの正規表現は、だから、私が持っている
- 19. 正規表現私は正規表現次ているのマッチングhtmlタグ
- 20. 正規表現削除列 "|"文字
- 21. 正規表現は、私は正規表現では良い午前ない
- 22. 正規表現は私の正規表現と多分間違っ
- 23. Javascriptの正規表現は、私は次のJavaScriptコードを持って
- 24. C#正規表現でXML/HTMLコメントを削除するには
- 25. 正規表現を使用してMongoDBコレクションを削除する
- 26. 非常に簡単な正規表現は、私は、この正規表現文字列を持っている私の検索テキスト
- 27. 正規表現は、私は、ファイル名を検証するため、次の正規表現を持っているVBで動作ではなく、C#
- 28. 正規表現でMysqlを検索して削除する
- 29. は、私は、ユーザー入力で次の正規表現のテストを持っているJavaScriptを有効にして正規表現のテスト
- 30. JS正規表現は型キャストを削除します
+1:Cool!この種の問題でこのトリックを覚えています。ありがとうございました! –