我有这个正则表达式
(?<=TG00).*?(?=#)
提取TG00
和#
之间的所有字符串。演示:https://regex101.com/r/04oqua/1
现在,从上面的结果我想只提取包含TG40 155963
的字符串。我该怎么办?
答案 0 :(得分:1)
您可以将此正则表达式与前瞻和否定字符类一起使用:
$.ajax({
type: "post",
url: url,
data: formData,
processData: false,
contentType: false,
success: function (data) {
console.log(JSON.stringify(data.revalformbean));
//console.log(JSON.stringify(data.examformbean.full_name));
$("input[type='hidden'][name='revalformbean.exam_detail_id']").val(data.revalformbean.exam_detail_id);
//$("input[type='hidden'][name='examformbean.full_name']").val(data.examformbean.full_name);
$("input[name='revalformbean.name']").val(data.revalformbean.first_name);
$("input[name='revalformbean.month_year']").val(data.revalformbean.exam_month_year);
$("input[name='revalformbean.seat_no']").val(data.revalformbean.seat_no);
var errorMsg = data.errorMsg;
//console.log("form "+errorMsg);
//json2array(data.customResult);
if (errorMsg != null) {
//alert(errorMsg);
$('#errorField').text(data.errorMsg);
$('#' + formId).find('input[type="submit"]').removeAttr('disabled');
} else {
fieldSetHide(formId);
}
}
});
RegEx说明:
(?<=TG00)(?=[^#]*TG40 155963)[^#]+(?=#)
:断言我们在之前的位置(?<=TG00)
TG00
:预测断言我们在0个或更多非#字符后面有字符(?=[^#]*TG40 155963)
,提前TG40 155963
:匹配1个非#字符答案 1 :(得分:1)
答案 2 :(得分:1)
出于某种原因,将.*?
附加到您的lookbehind导致引擎错误的结果,但使用前瞻工作正常。下面的正则表达式与您的文本完全匹配,但它确实通过捕获组提取它。
(?<=TG00).*?(TG40 155963)(?=.*?#)