7

私は文字列を持っています

foo-bar-bat.bla

一致させたいだけfoo

私の欠陥のあるパターンはfoobar

\w+(?=-.*\.bla)

どうすれば破棄できbarますか?または、さらに良いことに、後で一致するものを停止するにはどうすればよいfooですか?

4

3 に答える 3

9

次のパターンを使用できます(文字列が常にあなたが言ったようにフォーマットされている限り):

^\w+(?=-.*\.bla)

正規表現画像

Debuggexでライブ編集

^記号は文字列の先頭と一致します。したがって、文字列の最初の一致を取得します。

これ?=は、フォローしているグループがキャプチャされていないが、存在していることを確認するためのものです。

于 2013-03-13T17:51:11.510 に答える
0
^[^-]+

開始^とは、文字列の先頭からマッチングを開始することを意味します。文字[^-]グループとは、ダッシュ以外のものを検索することを意味します。これ+は、文字グループが1回または複数回文字と一致する必要があることを意味します。

于 2013-03-13T17:55:29.060 に答える
0

式の「。*」の部分は「bar」と一致します。

^\w+(?=-.*)

この式は、「文字列の先頭で、少なくとも1つの文字の後に(ただし、一致には含まれない)DASHの後に何かが続く」と読みます。

^ \w+ (?=-.*)
|  |    |
|  |   matches "-bar-bat.bla"
|  matches "foo"
start of string
于 2013-03-13T18:19:29.367 に答える