ex: <a><strike>example data in here</strike></a>
Я хочу все внутри тега, до конца
/<a>([^<]*)<\/a>/
Он работает, когда в теге <a>
нет дополнительных тегов, но что, если они есть?
Я хочу знать, можете ли вы сказать это, чтобы захватить все до [^</a>]
вместо [^<]
.
Выполнение этого с /<a>(.*)<\/a>/
не работает. Иногда я получаю все в теге <a>
а иногда я получаю тонны строк, включенных в этот вызов.
/<a>(.*?)<\/a>/
должно сработать. ? делает его ленивым, поэтому он хватает как можно меньше, прежде чем сопоставлять </a>
часть. но используя. будет означать, что он соответствует всем, пока не найдет </a>
. Если вы хотите иметь возможность сопоставлять строки, вы можете использовать следующее, если с preg_match
/<a>(.*?)<\/a>/s
«S» в конце ставит регулярное выражение в режиме «одной линии», что означает «. символ соответствует всем символам, включая новые строки. Другие полезные модификаторы