정규식은 물음표 뒤의 모든 항목과 일치합니까?


125

Yahoo Pipes에 피드가 있고 물음표 뒤의 모든 항목을 일치시키고 싶습니다.

지금까지 ..를 사용하여 물음표를 일치시키는 방법을 알아 냈습니다.

\?

이제 물음표 뒤 / 뒤에있는 모든 항목과 일치합니다.


2
\?.*이후의 모든 항목 (빈 문자열 포함)과 일치합니다 ?.
khachik 2010

어떤 프로그래밍 언어를 사용하고 있습니까?
Mark Byers

1
Java를 사용하는 경우"\\?"
CodyBugstein 2014-06-23

답변:


251
\?(.*)

첫 번째 캡처 그룹의 콘텐츠를 원합니다.


15
@Mark 이것이 당신이 필요한 것이라면 (이 질문이 오래되었지만!) 답으로 표시하십시오.
Pieter VDE 2013 년

5
@Dreamonic 마십시오는 :( 무슨 일이 일어나고 있다고 생각하지
Starkers

4
@Starkers 맞아. 그것은 일어나지 않을 것입니다. Mark는 Feb 5 '11 at 10:41. 우리가 얻는 모든 변화를 지적하는 것은 여전히 ​​좋습니다. 누군가가 이것을 지적하는 Dreamonic으로부터 배울 것입니다.
DutGRIFF

1
마지막 물음표 다음에 콘텐츠를 어떻게 캡처 하시겠습니까? 나는 그 이후부터 '앵커'를 원합니다-앵커가 올바른 단어인지 확실하지 않습니다.
BKSpurgeon

2
@BKSpurgeon ^. * \? ([^?] *) $의 첫 번째 캡처 그룹이 작동해야합니다
thejh

61

이 시도:

\?(.*)

괄호는 관심있는 문자열의 일부를 추출하는 데 사용할 수있는 캡처 그룹입니다.

문자열에 새 줄이 포함될 수있는 경우 점이 새 줄 문자와 일치하도록 "모두 점"수정자를 사용해야 할 수 있습니다. 이를 수행해야하는지 여부와이를 수행하는 방법은 사용중인 언어에 따라 다릅니다. 질문에 사용중인 프로그래밍 언어를 언급하는 것을 잊은 것 같습니다.

언어가 고정 너비 lookbehind 어설 션을 지원하는 경우 사용할 수있는 또 다른 대안은 다음과 같습니다.

(?<=\?).*

오 고정 너비? 이런 걸 뒤를 봐도 될까요? 주제 : 코드, 프로그래밍, 디자인 그래서 나는 콜론을 선택하고 주제의 cpaital T까지 뒤를 살펴보고 라인의 끝까지 진행하고 싶습니까? (이 경우 줄의 끝은 "design"입니다.
Mark

@Mark : 어떤 언어를 사용하고 있습니까?
Mark Byers

정규식을 제외한 Yahoo Pipes를 사용하고 있습니다. 나는이 질문에 대한 답을 얻었고 이제 콜론 뒤에 6 개의 문자를 선택하고 앞으로 많은 (모두) 전달하는 정규식을 찾고 있습니다.
Mark

@Mark : 질문 목록을 확인했지만 새 질문이 보이지 않습니다. 게시 했습니까?
Mark Byers

나는 잠시 후에이 새로운 질문을 다시 할 것입니다. 내 질문을 별도로 유지하는 것이 가장 좋으며 동시에 두 가지를 모두 질문 했어야했습니다. 감사합니다
Mark

36

으로 긍정적 인 lookbehind의 기술 :

(?<=\?).*

(여기서 물음표가 앞에 오는 텍스트를 검색합니다)

Input: derpderp?mystring blahbeh
Output: mystring blahbeh

기본적으로는 일치가 이루어지기 전에 이스케이프 된 물음표 ?<=필요한 그룹 구조 입니다.

그들은 정말 잘 수행되지만 모든 구현이이를 지원하지는 않습니다.


13
\?(.*)$

"?"뒤의 모든 문자를 일치 시키려면 그룹을 사용하여 모든 문자와 일치시킬 수 있으며 "$"기호를 사용하여 줄의 끝을 나타내는 것이 좋습니다.


1
대부분의 정규식 구현에서 .기본적으로는 새 줄 문자와 일치하지 않습니다. 결과적으로 표현식에 줄 끝 문자가 없어도 줄 끝까지 일치합니다.
Mark Byers

2

이 사이트를 확인하십시오 : http://rubular.com/ 기본적으로 사이트에서 몇 가지 예제 텍스트 (사이트에서 찾고자하는 내용)를 입력 할 수 있으며 정규식을 작성하면 일치하는 내용이 강조 표시됩니다. 실시간.


감사합니다. 콜론을 일치시키는 방법을 알고 있습니까? 그리고 콜론 앞에 일정량의 문자가 있습니까?
Mark

/([a-zA-Z]{4}):/일치 Test: Welcome하고 잡아Test
Austin Lin

0

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

""사이에서 제거 할 다른 항목을 선택하고 하나의 문자열에서 두 번 이상 사용할 수 없을 때 사용하는 것은 때때로 좋지 않습니다. ""사이에없는 것을 선택하고 아무것도 바꾸지 않는 것입니다.

나에게도 약간 혼란 스럽지만 설명하려고 노력하지 않습니다. ^.+?(하지 아무것도 선택 사항) 첫번째까지 "다음 |또는 / 정지까지 /시가 (아직도 정말 의미가 무엇인지 연구) ^.2 이전까지 아무 것도 선택하지 않았다 "사용 ( |정지 /에서). 그리고. + 뒤에 오는 모든 것을 선택하십시오.


코드의 기능과 이유를 알 수 있도록 코드에 대한 설명을 추가해보세요.
고래의 마법사 피카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.