Попробуйте использовать синтаксический анализатор HTML, предоставляемый языком, который вы используете.
Причина, по которой ваш первый регулярное выражение не удалось:
[0-9999999]
не то, что вы думаете.Это то же самое, что [0-9]
, что соответствует одной цифре.Чтобы соответствовать номеру, вам нужно [0-9]+
.Также .*
является жадным и постарается соответствовать как можно больше.Вы можете использовать .*?
, чтобы сделать его не жадным.Поскольку вы пытаетесь снова сопоставить число, снова используйте [0-9]+
вместо .*
.Кроме того, если записываемые два числа будут одинаковыми, вы можете просто сопоставить первое и использовать обратную ссылку \1
для второго.
И есть несколько метасимволов регулярных выражений, которые вам необходимобежать как .
, ?
.
Попробуйте:
<a href=\"travis\.php\?theTaco=([0-9]+)\">\1<\/a>