Это регулярное выражение (или регулярное выражение) можно разбить следующим образом.
(<([^>]+)>)
Скобки для группировки.
Иногда они используются для запоминания совпадений для использования в последующих работах, хотя я не вижу никаких доказательств, которые происходят в этом ограниченном примере кода.
Иногда они используются, чтобы разрешить несколько альтернативных вариантов (например (a|b|c)
, но я не вижу, что здесь либо.
Поскольку скобки ничего не делают в этом выражении, по крайней мере, не так далеко, как соответствия , давайте игнорировать их, что оставляет это:..
<[^>]+>
Половина этого просто прописные буквы, чтобы соответствовать начало матча должно быть символьная строка 4 символов <
, и конец строки является буквальным символ >
. В середине это единственный бит регулярного выражения.
[^>]+
квадратные скобки обозначают класс символов. Внутри класса символов, если ^
является первым символом, как он есть здесь, то это обратный символ класса , то есть означает «соответствовать вещам , а не эти вещи». Итак, этот класс символов говорит, что «соответствует вещам, которые не являются >
».
+
после класса символа называется квантором , а это означает «одна или несколько из этой штуки».
Итак, в совокупности это означает «одна или несколько вещей, которые не являются >
».
Полное выражение означает: соответствие <
, за которым следует одна или несколько вещей, которые не являются >
, а затем >
.
После выражения два флага, i
и g
. Значение i
означает совпадение с регистром без учета регистра. Здесь ничего не происходит, потому что у вашего выражения нет совпадающих символов, которые являются алфавитными. Флаг g
означает совпадение по всему миру, то есть, если имеется более одного совпадения с входом, они соответствуют всем, а не соответствуют только в первом случае.
Теперь, глядя на ваш пример XML, я считаю, что выражение произведет ряд изменений. Обратите внимание, что вы разместили только контент <wd:Question_Employee_Comment>
, но выражение фактически работает как с этим, так и с содержимым <wd:Question_Manager_Comment>
, если оно имеет значение. Я не буду отмечать здесь <wd:Question_Manager_Comment>
, потому что вы не опубликовали его содержимое.
- Ведущее
<p>
непосредственно перед I don't even
будет заменена новой строки.
- Сразу после
important to success
, </p><p></p><p>
будет заменен на 4 строки новой строки.
- Сразу после
absent on
, </p><ul><li>
будет заменен на 3 строки новой строки.
- Сразу после
3/19/15
, </li><li>
будет заменен на две новые строки.
- Сразу после
March 20, 2015
, </li><li>
будет заменен на две строки новой строки.
- Сразу после
5/01/2015
, </li>
будет заменен новой строкой.
- Незадолго до
All additional
, `< p> </p> < p> будет заменен тремя новыми строками.
- В конце
</p>
будет заменен на новую строку.
Обратите внимание, что там есть частичный тег, который пропущен выражением /ul>
.
Результат:
<wd:Question_Employee_Comment>
\nI don't even know where to start... Cupid wasn't @ his desk on 2/14/2015
and I'm really upset because I've been really patient with his personal needs.
Santa &amp; I sat him down and have discussed why his attendance is important
to success.\n\n\n\nHe's been absent
on:\n\n\n3/19/15\n\nMarch 20,
2015\n\n05/01/2015\n/ul>\n\n\nAll
additional dates will be documented.\n
</wd:Question_Employee_Comment>
Это из .replace()
вы специально просили о. Дальнейшая работа также выполняется с помощью полного выражения, такого как фиксация &amp;
, которая должна быть &
, и другие вещи выполняются. Я не сделал все эти преобразования здесь, поскольку они не были частью основного вопроса, который вы задали, но могли бы уточнить, если вы не понимаете эти части.
https://regex101.com/r/uB1lQ8/1 – choroba
прав .Надеть (/ (< ([^>] +)>)/И.Г., "\ п")? не будет .replace (/ (<([^>] +)>)/ig, "\ n")? – Polak