2010-12-11 4 views
57

У меня есть фид в Yahoo Pipes и вы хотите совместить все после вопросительного знака.Регулярное совпадение со всем после вопросительного знака?

До сих пор я понял, как соответствует знак вопроса, используя ..

\? 

Теперь только, чтобы соответствовать все, что после того, как/следует знак вопроса.

+2

'\?. *' Соответствует всем (включая пустую строку) после '?'. – khachik

+0

Какой язык программирования вы используете? –

+1

Для тех, кто использует Java, это '' \\? "' – CodyBugstein

ответ

30

Попробуйте это:

\?(.*) 

Скобки являются группа записи, которые вы можете использовать, чтобы извлечь часть строки вы заинтересованы в

Если строка может содержать новые строки, которые вы можете иметь. использовать модификатор «dot all», чтобы точка соответствовала новому символу строки. Независимо от того, нужно ли вам это делать, и как это сделать, зависит от языка, который вы используете. Похоже, вы забыли упомянуть язык программирования, который вы используете в своем вопросе.

Другого варианта, который вы можете использовать, если ваш язык поддерживает равноширокие утверждения назад ':

(?<=\?).* 
+0

О фиксированной ширине? Могу ли я заглянуть за чем-то вроде этого? Темы: код, программирование, дизайн Итак, я хочу выбрать двоеточие и заглянуть за пределы cpaital T тем и задач до конца на линии? (в этом случае конец строки «дизайн». – Mark

+0

@Mark: На каком языке вы используете? –

+0

Я использую Yahoo Pipes, который исключает регулярное выражение. Я получил этот вопрос и теперь ищу регулярное выражение, которое выбирает 6 символов за двоеточием и как многие (все). – Mark

142
\?(.*) 

Вы хотите содержание первой группы захвата.

+0

спасибо, что мне нужно. – Mark

+13

@Mark, если это то, что вам нужно (даже если этот вопрос старый!), Пожалуйста, отметьте это как ответ. –

+4

@Dreamonic Не думайте, что это происходит :( – Starkers

2

Посмотрите этот сайт: http://rubular.com/ В основном сайт позволяет вам ввести текст примера (что бы вы искали на своем сайте), а затем, когда вы создаете регулярное выражение, он будет выделять то, что соответствует в реальном времени.

+0

Спасибо за это, вы знаете, как совместить двоеточие? И определенное количество символов перед двоеточием? – Mark

+0

'/ ([a-zA- Z] {4}):/'будет соответствовать' Test: Welcome' и grab 'Test' –

8
\?(.*)$ 

Если вы хотите совместить все символы после "?" вы можете использовать группу для соответствия любому символу, и вам лучше использовать знак «$», чтобы указать конец строки.

+1

В большинстве реализаций регулярных выражений' .' по умолчанию не соответствует новому символу строки. В результате даже без конца символа линии в выражении, которое оно соответствовало бы до конца е линии. –

7

С положительной техники 'назад:

(?<=\?).*

(Мы ищем текст, которому предшествует знак вопроса здесь)

Input: derpderp?mystring blahbeh 
Output: mystring blahbeh 

Example

В основном ?<= - это групповая конструкция, для которой требует сбежавшего вопросительного знака перед любым совпадением.

Они работают очень хорошо, но не все реализации поддерживают их.

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