簡體   English   中英

在 javascript 的分隔多行字符串中查找單詞的正則表達式模式

[英]Regular expression pattern to find a word in the delimited multiline string in javascript

如果模式用於客人姓名,我希望output作為Test_guest1613 ,如果模式用於房間號,我希望 AK004

let mystring = `The description value is Holrest
Code: adip-345

Guest Name : Test_guest1613 
Room Number: AK004 
Request Number : 107157
Request Method: Email
Dates Requested:25-Jul-2020 08:00PM
If no specific date, weekday or weekend : N/A 
Start Time:25-Jul-2020 08:00PM
Time Zone : ET `;

re=/Guest Name\s?:\s?(.*?)( |$)/g;

mystring.match(re);

給我數組 output 來賓名稱:Test_guest1613 但我只想要 Test_guest1613

使用re.exec(mystring)收集捕獲的組並訪問數組中的第二個。

 let mystring = `The description value is Holrest Code: adip-345 Guest Name: Test_guest1613 Room Number: AK004 Request Number: 107157 Request Method: Email Dates Requested:25-Jul-2020 08:00PM If no specific date, weekday or weekend: N/A Start Time:25-Jul-2020 08:00PM Time Zone: ET `; re=/Code\s?:\s?(.*?)(?:\n| |$)+Guest Name\s?:\s?(.*?)(?: |$)/gm; let matches = re.exec(mystring); let code = matches[1]; let guestName = matches[2]; console.log(guestName, code);

您可以刪除Guest Name:事后使用.replace IE: mystring.match(re).replace(/Guest Name\s?:\s?/)

如果您想要Guest NameRoom Number的兩個值,您可以使用 2 個捕獲組:

^Guest Name\s?:\s?(.*?)\s*\r?\nRoom Number\s?:\s?(.*)

正則表達式演示

這些是單獨的模式,您可以使用第 1 組來獲取值

^Guest Name\s?:\s?(.*?)[^\S\r\n]*$^Room Number\s?:\s?(.*?)[^\S\r\n]*$

 const regex = /^Guest Name\s?:\s?(.*?)\s*\r?\nRoom Number\s?:\s?(.*)/m; const str = `The description value is Holrest Code: adip-345 Guest Name: Test_guest1613 Room Number: AK004 Request Number: 107157 Request Method: Email Dates Requested:25-Jul-2020 08:00PM If no specific date, weekday or weekend: N/A Start Time:25-Jul-2020 08:00PM Time Zone: ET `; let m = str.match(regex); console.log(m[1]); console.log(m[2]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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