![](/img/trans.png)
[英]Regex to capture everything before specific string and then progressively
[英]Regex: capture everything until specific word(s)
我有兩個類似的字符串變體:
學生的同伴*作者 :皮埃爾·阿爾考克;瑪格麗特·梅;沙龍·賴特 *密爾EAN / ISBN:9781283333115
Java編程:Java專家* 作者:Sarang,Poornachandra * MIL EAN / ISBN:9781280117268
現在,我想抓住第一位作者:Alcock,Pete aand Saran,Pooranachandra。
現在使用Javascript,我正在嘗試做:
var regex = new RegExp("(Author:)\\s(.+)(?=;|MIL)");
var regexVal = value.match(regex);
console.log(regexVal);
要么
var regex = new RegExp("(Author:)\\s(.+)(?=MIL)");
var regexVal = value.match(regex);
console.log(regexVal);
如果有一個作者,第二個Regex可以很好地工作,但是,如果有多個作者,我想選擇價值,直到第一個; 不是MIL
| 匹配任一部分,因此,它不應該在第一次停止時停止; 被發現?
問候,奢華
您可以使用:
var regex = /Author:\s([^;*]+)/;
或者,如果這些*
不在字符串中:
var regex = /Author:\s((?:(?!MIL)[^;])+)/;
要么
var regex = /Author:\s([^;])+?)(?=;|MIL)/;
通過將正則表達式修改為解決了我的問題:
(Author:)(([^;])+)(;|MIL)
此正則表達式說:應該以“作者:”開頭。 並且應該以; 或MIL。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.