私は文字列を持っています
foo-bar-bat.bla
一致させたいだけfoo
私の欠陥のあるパターンはfoo
、bar
\w+(?=-.*\.bla)
どうすれば破棄できbar
ますか?または、さらに良いことに、後で一致するものを停止するにはどうすればよいfoo
ですか?
私は文字列を持っています
foo-bar-bat.bla
一致させたいだけfoo
私の欠陥のあるパターンはfoo
、bar
\w+(?=-.*\.bla)
どうすれば破棄できbar
ますか?または、さらに良いことに、後で一致するものを停止するにはどうすればよいfoo
ですか?
次のパターンを使用できます(文字列が常にあなたが言ったようにフォーマットされている限り):
^\w+(?=-.*\.bla)
^
記号は文字列の先頭と一致します。したがって、文字列の最初の一致を取得します。
これ?=
は、フォローしているグループがキャプチャされていないが、存在していることを確認するためのものです。
^[^-]+
開始^
とは、文字列の先頭からマッチングを開始することを意味します。文字[^-]
グループとは、ダッシュ以外のものを検索することを意味します。これ+
は、文字グループが1回または複数回文字と一致する必要があることを意味します。
式の「。*」の部分は「bar」と一致します。
^\w+(?=-.*)
この式は、「文字列の先頭で、少なくとも1つの文字の後に(ただし、一致には含まれない)DASHの後に何かが続く」と読みます。
^ \w+ (?=-.*)
| | |
| | matches "-bar-bat.bla"
| matches "foo"
start of string