私は文字列を持っています
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