Могу ли я узнать, как написать регулярное выражение, чтобы получить строку, которая начинается с >
и заканчивается на }
?
Пример строки:
data>/ab/cd/peter} ;gopal came prop>/site/sing/perl};
Мне нужны следующие подстроки:
>/ab/cd/peter}
>site/sing/perl}
Я пробовал с этим, но не знал, как разместить условие, которое начинается с >
.
мои выводы:
(/(\w+)/)*(\w+)(@*)(\w+)(~*)((\w+)?)/(\w+)\}
Какой язык? JavaScript, PHP, Perl, ABAP?
Это просто />[^}]+}/g
: >
, чтобы отметить, с чего начать, [^}]+
, чтобы сказать «что-нибудь, кроме }
» один или несколько раз, и }
, чтобы отметить, где остановиться:
const str = "data>/ab/cd/peter} ;gopal came prop>/site/sing/perl};";
const rex = />[^}]+}/g;
let match;
while (!!(match = rex.exec(str))) {
console.info(match[0]);
}
Попробуйте это регулярное выражение javascript:
var inputStr = "data>/ab/cd/peter} ;gopal came prop>/site/sing/perl};";
var outputStr = inputStr.match(/(\>)([^\>\}]*)(\})/g);
console.info(outputStr);
Спасибо. Работает, как ожидалось
В ABAP вы должны экранировать }
. Преобразование правильного ответа @ T.J. Краудер, это дает:
FIND ALL OCCURRENCES OF REGEX '>[^}]+\}' IN 'data>/ab/cd/peter} ;gopal came prop>/site/sing/perl};' RESULTS DATA(results).
попробуйте этот
(?<=>).+?(?=})
, если хотите> и} затем(>).+?(})