2012-04-04 3 views
18

Я не очень уверен, правильная формулировка для этого типа регулярного выражения будет, но в основном то, что я пытаюсь сделать, соответствует любой строке, начинающейся с «/», но в качестве примера не следует «bob /».Perl Regex «Not» (отрицательный lookahead)

Так что это будет соответствовать:

/tom/ 
/tim/ 
/steve 

Но это бы не

tom 
tim 
/bob/ 

Я уверен, что ответ очень прост, но у меня было трудное время в поисках «регулярное выражение не» где-нибудь , Я уверен, что есть более приятное слово для того, что я хочу, что принесет хорошие результаты, но я не уверен, что это будет.

Edit: Я изменил название, чтобы указать правильное название для того, что я искал

+1

насчет '/ jimbob/'? как насчет '/ bob/apples'? – ysth

+0

Для моих целей/jimbob/был в порядке, но/bob/яблоки не были – GoldenNewby

ответ

19

Вы можете использовать отрицательный предпросмотр (документированный под "Extended Patterns" in perlre):

/^\/(?!bob\/)/ 
+0

Возможно/^ \/(?! bob \ /) /, хотя ... но вы получили суть этого. Благодаря! – GoldenNewby

+0

@GoldenNewby Woops, упустил эту часть вопроса –

+2

С флагов регулярных выражений по умолчанию теперь функция, которая '^' лучше написана как '\ A'. С альтернативными разделителями и '/ x' он выглядит как' m | \ A/(?! Bob /) | x'. –

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

  • Нет связанных вопросов^_^