2014-12-22 1 views
0

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

Q. 1. If you are given a dry piece of land for cultivation what will you do before 
sowing the seeds? 
Q. 2. During which months do farmers grow mustard in India? 

Я хочу, чтобы пренебречь из этих вопросов (Q. 1., Q 2 ...... так далее.). Я использую это регулярное выражение для этого:

`/(Q..+[^(A)]+)/` 

Но это регулярное выражение выбирает все слова в предложении.
Как я могу это исправить?

+0

Вы не поняли. Что требуется для ввода и вывода? –

+0

Я хочу, чтобы этот выход с верхнего ввода quetion 1 как (Если вам дали сухой участок земли для выращивания, что вы будете делать до посева семян?) –

+0

Здравствуйте @SurajRajput, я отредактировал ваш вопрос. Я считаю, что это более ясно. Если вы не согласны с редактированием, вы можете отбросить его назад. Чтобы отбросить его, нажмите «отредактировано ... назад» и найдите вариант «откат». –

ответ

0

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

/(?<=Q\. \d+\.).*?(?=(Q\. \d+\.|$))/gs 

Это будет просто соответствовать вопрос без каких-либо групп.

DEMO Примечание: Если вы не имеете s поддержки флаг, то вы можете заменить .*? с [\s\S]*?

Если у Вас есть какие-либо трудности в использовании регулярных выражений в связи с различными вкусами и их drawabacks, вы могли бы использовать Regex Q\.\s+\d+\.\s*(.*), который уже был предложен в ПНЭ ответов и использовать группу 1.

+0

Это регулярное выражение не может работать, когда номер вопроса больше 9. –

+0

@ MousamiRoul вопрос добавления '+' Отредактировано –

+0

@AmitJoki: В цвете PCRE '\ d +' не будет работать в lookbehind. Он не будет работать в NSRegularExpression (Objective-C/Apple). И JavaScript, единственный вкус, который не поддерживает «s» режим, также не поддерживает lookbehinds. Вы уверены, что не хотите предлагать что-то, связанное с захватом групп? –

0
Q\.\s+\d+\.\s*(.*) 

Попробуйте this.Grab демо capture.See.

https://regex101.com/r/vN3sH3/57

+0

Я хочу пренебречь Q. 1. и Q. 2. из вопросов я не хочу выбирать все –

+0

@SurajRajput при захвате группы 1 'Q1' будет пренебрегать – vks

0
`/Q\. [0-9]+\. (.+)/g` 

будет соответствовать вопрос и игнорировать нумерацию.