2013-07-27 1 views
-1

Мне нужно написать регулярное выражение, которое соответствует строке между «<» и «>».Как найти все подзаголовки в категории "<" and ">"?

Если входной строки <c#><ios>

Я хотел бы: <c#> и <ios>

Это кажется легким, но я новичок в этом.

EDIT: Я надеялся, что это должно работать new Regex(@"<*>");

+1

Идеальная идея? – Gumbo

ответ

3

В зависимости от реализации Regex:

'!<([^>]+)>!' 

или без разделители

'<([^>]+)>' 

С look arounds

'!(?<=<)[^>]+(?=>)!' 
+1

http://www.regular-expressions.info/refadv.html для объяснения поисковых запросов. –

+0

@vaibhav Вы должны быть в состоянии отметить это как ответ. Благодарю. –

1

regex не работает, потому что он соответствует строкам, состоящим из как можно большего количества символов < - так как < следует за квантором * (жадный 0 или более), за которым следует один символ >. Например, следующие строки будут соответствовать:

  • <<<>
  • <<>
  • <>
  • >

Но не строка с не- < непосредственно предшествующий >, такие как <a> , будет соответствовать.

Вам нужно выражение типа <.*?>, которое позволяет использовать любой другой символ между < и >. См. AbsoluteƵERØ's answer для некоторых других предложений.

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