JavaScript RegEx для получения одного или нескольких вхождений определенного шаблона в строку - PullRequest
0 голосов
/ 19 января 2019

Учитывая следующий фрагмент HTML:

<header>Student Directory</header>
<main>
<Student name="Pedro" age="23" />
    <div id="student1">
        <ul>
            <li>Maths</li>
            <li>English</li>
            <li>Swedish</li>
        </ul>
</div>
<Student name="Jane" age="15" />
</main>
<Footer />

В приведенном выше фрагменте HTML есть три пользовательских тега, которые представляют компоненты.Компоненты имеют согласованный формат, в котором они начинаются с открывающей скобки, затем с заглавной буквы, а затем они закрываются с /> Итак, я пытаюсь получить все компоненты в виде строк.Regex кажется правильным подходом, однако я новичок в RegEx, и я читал о «жадных» и «не жадных» подходах к достижению этой цели.Однако, как новичок, я могу пропустить лучшие практики или делать что-то неэффективно.По сути, в примере HTML я хочу получить три строки:

Строки:

 <Student name="Pedro" age="23" /> <Student name="Jane" age="15" /> and  <Footer />

, которые представляют только три компонента и их данные в HTML.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 19 января 2019

Если вы действительно хотите сделать это с помощью регулярных выражений Вы можете попробовать что-то вроде <[^(\/>)]+\/>:

var str = `<header>Student Directory</header>
<main>
<Student name="Pedro" age="23" />
    <div id="student1">
        <ul>
            <li>Maths</li>
            <li>English</li>
            <li>Swedish</li>
        </ul>
</div>
<Student name="Jane" age="15" />
</main>
<Footer />`

var matches = str.match(/<[^(\/>)]+\/>/g)

console.log(matches)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...