簡體   English   中英

正則表達式:捕獲所有內容,直到特定單詞為止

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM