Cod*_*Guy 4 javascript regex string
我有一个类型的字符串,预期的结果是
input = "[Peter Jane Minesotta <pet.j.minn@mnu.al.edu>]"
Run Code Online (Sandbox Code Playgroud)
输出
Fname = "Peter"
SecondAndRemainingNames = "Jane Minesotta"
email = "pet.j.minn@mnu.al.edu"
Run Code Online (Sandbox Code Playgroud)
input = "[Peter <pet.j.minn@mnu.al.edu>]"
Run Code Online (Sandbox Code Playgroud)
输出
Fname = "Peter"
SecondAndRemainingNames = ""
email = "pet.j.minn@mnu.al.edu
Run Code Online (Sandbox Code Playgroud)
我需要使用正则表达式提取
我试过
input.match(/\w/gim)
Run Code Online (Sandbox Code Playgroud)
您可以使用
const rx = /\[(\S+)(?:\s+(.*?))?\s+<([^<>]+)>]/
const strings = ['[Peter Jane Minesotta <pet.j.minn@mnu.al.edu>]','[Peter <pet.j.minn@mnu.al.edu>]'];
for (const s of strings) {
const [_, Fname, SecondAndRemainingNames, email] = s.match(rx);
console.log([Fname, SecondAndRemainingNames, email]);
}Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示。
细节
\[- 一个[字符(\S+)- 第 1 组:一个或多个非空白字符(要留在 内[...],您可以[^\s[\]]+改用)(?:\s+(.*?))?- 1+空格,一个可选的字符串,随后用2组捕获比换行字符以外的任何零个或多个字符尽可能少(替换.*?用[^[\]]*?,如果你想留内[...])\s+ - 一个或多个空格<([^<>]+)>- >, 第 3 组:除<and之外的一个或多个字符>,然后>]- 一个]字符。| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |