2

正規表現でこれを行うにはどうすればよいですか?

この文字列に一致させたい:-myString

しかし、私はこの文字列に一致させたくありません-myString:--myString

もちろん、myString は何でも構いません。

それは可能ですか?

編集:

質問を投稿してから、これまでに得た情報をもう少し詳しく説明します。

string to match:
some random stuff here -string1, --string2, other stuff here
regex:
(-)([\w])*

この正規表現は 3 つの一致を返します: -string1-および-string2

-string1理想的には、一致したものだけを返してほしい

4

6 に答える 6

11

正規表現エンジンが (負の) 後読みをサポートしていると仮定します。

/(?<!-)-myString/

たとえば、Perl にはありますが、Javascript にはありません。

于 2009-02-09T16:36:37.103 に答える
0
/^[^-]*-myString/

テスト:

[~]$ echo -myString | egrep -e '^[^-]*-myString'
-myString
[~]$ echo --myString | egrep -e '^[^-]*-myString'
[~]$ echo test--myString | egrep -e '^[^-]*-myString'
[~]$ echo test --myString | egrep -e '^[^-]*-myString'
[~]$ echo test -myString | egrep -e '^[^-]*-myString'
test -myString
于 2009-02-09T16:34:22.650 に答える
0

複数のダッシュを含む文字列ではなく、単一のダッシュで始まる文字列を一致させたいですか?

^-[^-]

説明:

^ Matches start of string
- Matches a dash
[^-] Matches anything but a dash
于 2009-02-09T16:35:14.377 に答える
0

[^-]{0,1}-[^\w-]+

于 2009-02-09T16:36:19.680 に答える
0

最後の編集に基づいて、次の式の方がうまくいくと思います

\b\-\w+
于 2009-02-09T17:01:14.767 に答える