2012-06-28 5 views
0

У меня есть HTML-файл, как показано ниже: (я новичок в регулярном выражении)Как сделать шаблон регулярного выражения?

<a href=":$451$142">some thing</a> 
<a href=":$14$15">some thing</a>         
<a href=":$3$16">some thing</a>      
<a href=":$312$17">some thing</a> 

как я могу заменить все «: $ Номер $ Номер» с «#»?

+2

Разбор HTML с регулярным выражением, я думал, что есть очень четкое сообщение об этом на SO о том, почему это НЕ МОЖЕТ быть сделано, и НЕ ДОЛЖНО! –

+0

Как насчет использования jQuery? '$ ('a'). prop ('href', '#');' –

+0

Я пробую этот адрес: http: //www.rubular.com/r/1zWQQVLZy1, но я не смог сделать один – KF2

ответ

0

Это регулярное выражение должно работать:

 String str = @"<a href="":$451$142"">some thing</a> "+ 
        @" <a href="":$14$15"">some thing</a> "+        
        @" <a href="":$3$16"">some thing</a> "+     
        @" <a href="":$312$17"">some thing</a> "; 
     String newStr = Regex.Replace(str,@":\$\d+\$\d+", "#"); 
     System.Console.WriteLine(str); 
     System.Console.WriteLine("\n\n" + newStr); 

Это дает:

<a href=":$451$142">some thing</a> <a href=":$14$15">some thing</a> <a href 
=":$3$16">some thing</a>  <a href=":$312$17">some thing</a> 


<a href="#">some thing</a> <a href="#">some thing</a> <a href="#">some thin 
g</a>  <a href="#">some thing</a> 

Регулярное выражение: :\$\d+\$\d+ будет соответствовать любому фрагменту текста, начиная с :, после чего $$ является особый символ в языке регулярных выражений и, следовательно, необходимо бежать с дополнительным \ спереди). $, в свою очередь, должно сопровождаться одной или несколькими цифрами (\d+), за которой следует еще один :, за которым следует одно или несколько номеров (\d+). Для получения дополнительной информации ознакомьтесь с руководством по this.

Хотя в этом случае регулярные выражения действительно помогли, настоятельно рекомендуется использовать их для разбора языков. Пожалуйста, используйте специальные рамки, такие как HTML Agility Pack, чтобы выполнять любые связанные с HTML процессы. Посмотрите here на пример, похожий на то, что вы пытаетесь сделать.

+0

Спасибо моему другу – KF2

+1

@irsog: Не стоит беспокоиться. Однако, если я, где вы, я бы выбрал решение HTML Agility pack. HTML ** никогда не должно обрабатываться регулярными выражениями. – npinti

Смежные вопросы