У меня есть такая строка;Строка соответствия регулярному выражению до нежелательной части
[0]: http//www.somelink.com[Some Text][0]
[Some Text][0]
не является обязательным. Это может быть или нет.
Я хочу, чтобы соответствовать [0]: http//www.somelink.com
с 0 меняется на 1
Для этого я использовал этот код; string.replace(/(\[)\d+(\]:.+)(\[.*?\]\[\d+\])?/, "$11$2");
Но я думаю, becouse (\[.*?\]\[\d+\])?
является необязательным +
поглощает все символы, даже если есть [Some Text] [0] или нет
Я также попытался string.replace(/(\[)\d+(\]:[^\\[]+)(\[.*?\]\[\d+\])?/, "$11$2");
это работало, но если есть [перед тем [Some Text ] [0] +
остановка соответствие
и я также попытался это string.replace(/(\[)\d+(\]:.+)(?!\[.*?\]\[\d+\])/, "$11$2");
но опять + потребляет все,
есть ли способ, чтобы соответствовать каждому символу, включая [
, пока [Some Text][0]?
Изменить все '\ [\ d + \]' в '[1]', если строка соответствует 'somelink.com'? Как насчет [этой скрипки] (http://jsfiddle.net/x6mn1387/) –
Из вашего регулярного выражения похоже, что вы пытаетесь изменить [0] http на '[1] http' и удалить '[Some Text] [ 0] «Почему это двусмысленно? Кроме того, это пример целой строки? – sln
@Jonny 5 Я использовал 'd' becouse это может быть любое число – MOD