Помощь с регуляркой: как указать признак который будет исключать совпадение?

[Удален]
644

Как указать признак который будет исключать совпадение?

пример

регулярка: 1.*?4

текст:

1234

1114

1564

1ff4

рез:

1234

1114

1564

1ff4

а надо например:

1234

1114

1564

т.е. если есть буква "f", то не подойдет.

Объяснил, как мог. Нужно срочно!!!

K
На сайте с 09.06.2008
Offline
21
#1

Только буква f или любая буква?

Можно так:

1[0-9]*?4

Поясняю суть:

После цифры 1 идет 0 или более символов, указаных в символьном классе. Т.е. в данном случае это цифры 0-9. После этого идет цифра 4.

Если нам надо исключить только букву f, то это будет выглядеть так (после квадратной скобки ставим символ ^ и перечисляем символы, которые нужно исключить:

1[^f]*?4

а данном случае совпадением с рег. выражением будет, например:

1s24

[Удален]
#2

зря я наверно упростил.

на самом деле у меня идет разнообразный текст: a href, class и т.д. а исключить мне нужно символ ">"

28
На сайте с 31.10.2009
Offline
116
#3
LenTax:
зря я наверно упростил.
на самом деле у меня идет разнообразный текст: a href, class и т.д. а исключить мне нужно символ ">"

Вот так описать исключение символа

[^f]+

2038 добавил 11.01.2011 в 20:52

LenTax:
зря я наверно упростил.
на самом деле у меня идет разнообразный текст: a href, class и т.д. а исключить мне нужно символ ">"

Если честно, то вы и это сообщение упростили донельзя. Напишите задачу полностью, быть может решим =)

Ну и потом вам стоило бы указать, в какой системе применяется регулярка - на ПХП синтаксис один, а, например, в ФАРе немного другой.

2038 добавил 11.01.2011 в 20:54

LenTax:
Как указать признак который будет исключать совпадение?


регулярка: 1.*?4

Вот эта регулярка работать не будет, т.к. .* описывает "любой символ, любое количество раз". И сразу после этого стоит ? "может быть а может и не быть".

Борец за чистоту Интернета.
[Удален]
#4

Всем спасибо. Задачу решил.

LenTax добавил 11.01.2011 в 21:26

а как указать несколько символов? ну т.е. ">" и "&" например.

28
На сайте с 31.10.2009
Offline
116
#5
2038:

Вот эта регулярка работать не будет, т.к. .* описывает "любой символ, любое количество раз". И сразу после этого стоит ? "может быть а может и не быть".

Ошибка. Это "Ленивое выражение".

[Удален]
#6

а как указать тогда, самое короткое совпадение в регулярке?

S
На сайте с 28.10.2005
Offline
319
#7

> а как указать несколько символов? ну т.е. ">" и "&" например

[^>&]

> а как указать тогда, самое короткое совпадение в регулярке?

Вы б показали, что там изобретаете, может пятиколесный велосипед

[Удален]
#8
semenov:
> а как указать несколько символов? ну т.е. ">" и "&" например

[^>&]

> а как указать тогда, самое короткое совпадение в регулярке?

Вы б показали, что там изобретаете, может пятиколесный велосипед

Поздно уже))

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий