Regex відповідає всім після знака питання?


125

У мене є канал у Yahoo Pipes і хочу відповідати всім після знака питання.

Поки я зрозумів, як відповідати знаку запитання за допомогою ..

\?

Тепер просто узгодити все, що є після / слідує за запитанням.


2
\?.*відповідає всім (включаючи порожній рядок) після ?.
хачик

Яку мову програмування ви використовуєте?
Марк Байєрс

1
Для тих, хто використовує Java, це"\\?"
CodyBugstein

Відповіді:


251
\?(.*)

Ви хочете вміст першої групи захоплення.


15
@Зазначте, якщо це те, що вам потрібно (навіть якщо це питання давнє!), Будь ласка, позначте це як відповідь.
Пітер VDE

5
@Dreamonic Не думай, що це відбувається :(
Старкерс

4
@Starkers Ви маєте рацію. Це не станеться. З тих пір Марка не було Feb 5 '11 at 10:41. Ще добре зазначити кожну зміну, яку ми отримаємо. Можливо, хтось навчиться з Dreamonic вказувати на це.
DutGRIFF

1
як би ви захопили вміст після останнього знака питання? Я хочу "прив’язати" з цього моменту - я не впевнений, що якір - це правильне слово.
BKSpurgeon

2
@BKSpurgeon перша група захоплення в ^. * \? ([^?] *) $ Повинна працювати
thejh

61

Спробуйте це:

\?(.*)

Дужки - це група захоплення, яку ви можете використовувати для вилучення тієї частини рядка, яка вас цікавить.

Якщо рядок може містити нові рядки, можливо, вам доведеться використовувати модифікатор "точка всіх", щоб точка могла відповідати новому символу рядка. Потрібно це робити чи ні, і як це зробити, залежить від мови, якою ви користуєтесь. Схоже, ви забули згадати мову програмування, яку ви використовуєте у своєму запитанні.

Ще одна альтернатива, яку ви можете використовувати, якщо ваша мова підтримує фіксовану ширину за твердженнями:

(?<=\?).*

О фіксована ширина? Чи можу я заглянути за щось подібне? Теми: код, програмування, дизайн. Отже, я хочу виділити двокрапку і озирнусь, аж до головного Т теми та передумов до кінця? (у цьому випадку кінець рядка - "дизайн".
Позначте

@Mark: Якою мовою ви користуєтесь?
Марк Байєрс

Я використовую Yahoo Pipes, що виключає регулярний вираз. Я отримав відповідь на це запитання, і зараз шукаю регулярний вираз, який виділяє 6 символів за товстою кишкою і стільки ж (усіх) вперед ..
Позначити

@Mark: Я перевірив ваш список питань, але не бачу вашого нового. Ви впевнені, що опублікували це?
Марк Байєрс

Я знову запитаю це нове запитання через кілька моментів. Вгадайте, що найкраще тримати мої запитання окремо, і справді слід було б задати обидва одночасно. Спасибі
Позначте

36

З позитивним поглядом за технікою:

(?<=\?).*

(Тут ми шукаємо текст, якому передує знак питання)

Input: derpderp?mystring blahbeh
Output: mystring blahbeh

Приклад

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

Вони працюють дуже добре, але не всі реалізації підтримують їх.


13
\?(.*)$

Якщо ви хочете відповідати всім знакам після "?" ви можете використовувати групу для відповідності будь-якому знаку, і вам краще використовувати знак "$", щоб вказати кінець рядка.


1
У більшості регулярних реалізацій виразів .за замовчуванням не відповідає новому символу рядка Як результат, навіть без закінчення символу рядка у виразі він би відповідав до кінця рядка.
Марк Байєрс

2

Перевірте цей сайт: http://rubular.com/ В основному сайт дозволяє ввести текст прикладу (те, що ви шукали на своєму сайті), а потім, будуючи регулярний вираз, він підкреслить те, що відповідає реальний час.


Дякую за це, чи знаєте ви, як співставити двокрапку? А певна кількість символів перед двокрапкою?
Марк

/([a-zA-Z]{4}):/буде поєднуватися Test: Welcomeта гратиTest
Остін Лін

0

str.replace(/^.+?\"|^.|\".+/, '');

Іноді це погано використовувати, коли ви хочете вибрати те, що ще потрібно видалити між "", і ви не можете використовувати його більше ніж два рази в одній рядку. Все, що він робить - це вибрати те, що не знаходиться між "" і замінити його нічим.

Навіть для мене це трохи заплутано, але я намагаюся пояснити це. ^.+?(не що завгодно ОПЦІЙНЕ) до початку, "а потім |/ / зупинка (все ще досліджуючи, що це насправді означає) до / на ^.не вибрала нічого до початку другого "використання ( |зупинка / у). І виберіть усе, що буде після. +.


Будь ласка, подумайте про те, щоб додати опис свого коду, щоб ми знали, що він робить і чому.
Піка Чарівник китів
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.