0

nbnbaasd<sdの前に表示される文字列の部分をキャプチャしたいだけですa

nbnb試合として返して欲しいです。

 /.+(?!a)/.match("nbnbaasd<sd") # returns the whole string
4

2 に答える 2

5

否定された文字セットを使用するだけです:

/[^a]+/.match("nbnbaasd<sd")

これは、先読み方式よりもはるかに効率的です。


ここで実際に見てください:http://regexr.com?32288

于 2012-09-05T17:57:04.677 に答える
1

実際、「nbnbaasd<sd」の後に「a」がないため、文字列全体が返されます。

これを試して。

/.+?(?=a)/.match("nbnbaasd<sd")

(これを達成するために実際に先読みを使用する必要はありませんが、おそらく問題を単純化し、実際の問題では何らかの理由で幅ゼロのアサーションが必要になる可能性があります。したがって、これはできるだけ近い解決策ですあなたが試みたもの。)

于 2012-09-05T17:56:26.733 に答える