regex 正则表达式获取两个尖括号之间的字母

lskq00tm  于 2022-12-24  发布在  其他
关注(0)|答案(3)|浏览(224)

寻找正则表达式,将获得所有字母(a-zA-Z)之间的<>我不知道regex以及在所有,但我有这个\<:([a-zA-Z]+)\>,它是行不通的
下面是我希望发生的一个例子:
变为文本
谢谢大家!

8yoxcaq7

8yoxcaq71#

您的问题遗漏了一些细节。以下是基于以下假设的答案:

  • 您有一个字符串,其文本具有<xyz>模式,其中xyz具有1+个字母字符
  • 串可以具有多个X1 M2 N1 X模式
  • 返回值是找到的模式数组,如果没有则为空

此外,还不清楚是否需要提取带尖括号或不带尖括号的alpha字符,因此下面是一个同时显示这两种字符的答案:

const regex1 = /<[a-zA-Z]+>/g;
const regex2 = /(?<=<)[a-zA-Z]+(?=>)/g;
[
  '<a>', '<hr>', 'foo <div> bar', 'foo <br> bar <br> moo', // matches
  '</nothing>', 'no tag'                                   // no matches
].forEach(str => {
  let matches1 = str.match(regex1) || [];
  let matches2 = str.match(regex2) || [];
  console.log(str +
    ' => regex1: ' + JSON.stringify(matches1) +
    ' => regex2: ' + JSON.stringify(matches2));
});

正则表达式1的解释:

  • <--尖括号
  • [a-zA-Z]+-具有1+个字母字符的字符类
  • >--角括号

regex 2的解释:

  • (?<=<)-尖括号的正向后查找
  • [a-zA-Z]+-具有1+个字母字符的字符类
  • (?=>)-尖括号的正向前查找

请注意,并非所有浏览器都支持lookbehind,特别是Safari。
了解有关regex的更多信息:https://twiki.org/cgi-bin/view/Codev/TWikiPresentation2018x10x14Regex

lnvxswe2

lnvxswe22#

〈[a-zA-Z]+〉
可能就是你要找的

document.getElementById('inp').addEventListener("keyup",check);
function check(e){
  const regex = /<[a-zA-Z]+>/g;
  while ((m = regex.exec(e.target.value)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        document.getElementById('result').innerText = match;
    });
}
}
<input id='inp'/> Type a tag in here
<div id='result'></div>
62lalag4

62lalag43#

您可以使用<[a-zA-Z]+>
一些解释:

  1. [a-zA-Z]-匹配a-z或A-Z(小写或大写)中的任何字符。
  2. +-匹配+之前的一个或多个字符。

相关问题