5

次の文字列があります。

/v/dkdkd-akdoa?

交換したいdkdkd-akdoaです。

私の置換方法は次のようになります

string.replace("v\/(.+)\?", "replace")

しかし、それはまた置き換えv/ます。のみを置き換えるにはどうすればよいdkdkd-akdoaですか?

4

3 に答える 3

5

次のコードを試してください:

> '/v/dkdkd-akdoa?'.replace(/(v\/).+\?/, '$1replace')
"/v/replace"

保持したい場合?

> '/v/dkdkd-akdoa?'.replace(/(v\/).+(?=\?)/, '$1replace')
"/v/replace?"

$1最初のグループを参照 ( (v\/))

于 2013-07-25T19:11:38.313 に答える
3

非常に単純に

string.replace(/v\/.+\?/, "v/replace");

最初の部分がわからない場合は、キャプチャして置き換えることができます。

string.replace(/(v\/).+\?/, "$1replace");

v/2 番目の例では、が一定であるため、明らかに既知です。あなたは潜在的にそれを次のようなものに置き換えるでしょう/^(.*?/).+\?/

于 2013-07-25T19:12:41.167 に答える