반응형
한 단어 만 포함하고 다른 단어는 포함하지 않는 문자열에 대한 정규식
Google 애널리틱스에서 몇 가지 목표를 설정하고 있으며 정규식 도움말을 사용할 수 있습니다.
URL이 4 개 있다고 가정 해 보겠습니다.
http://www.anydotcom.com/test/search.cfm?metric=blah&selector=size&value=1
http://www.anydotcom.com/test/search.cfm?metric=blah2&selector=style&value=1
http://www.anydotcom.com/test/search.cfm?metric=blah3&selector=size&value=1
http://www.anydotcom.com/test/details.cfm?metric=blah&selector=size&value=1
selector = size 문자열은 포함 하지만 details.cfm 은 포함하지 않는 URL을 식별하는 표현식을 작성하려고합니다.
다른 문자열을 포함하지 않는 문자열을 찾으려면 다음 식을 사용할 수 있습니다.
(^((?!details.cfm).)*$)
그러나 selector = size 부분 을 추가하는 방법을 잘 모르겠습니다 .
어떤 도움이라도 대단히 감사하겠습니다!
이렇게해야합니다.
^(?!.*details\.cfm).*selector=size.*$
^.*selector=size.*$
충분히 명확해야합니다. 첫 번째 비트 (?!.*details.cfm)
는 음의 미리보기입니다. 문자열을 일치시키기 전에 문자열에 "details.cfm"(앞에 임의의 수의 문자가 있음)이 포함되어 있지 않은지 확인합니다.
정규식은 다음과 같을 수 있습니다 (perl 구문).
`/^[(^(?!.*details\.cfm).*selector=size.*)|(selector=size.*^(?!.*details\.cfm).*)]$/`
^(?=.*selector=size)(?:(?!details\.cfm).)+$
정규식 엔진이 포즈 한정자를 지원했다면 (Google Analytics는 지원하지 않는다고 생각하지만), 대규모 입력 세트에서 더 잘 수행 될 것이라고 생각합니다.
^[^?]*+(?<!details\.cfm).*?selector=size.*$
나는 OP와 Kobi의 솔루션이 나를 위해 잘 작동하는 것과 비슷한 상황에서 꼬리에 --line-buffered를 피하는 방법을 찾고있었습니다. 내 경우에는 '/'(내 루트 문서의 경우)를 포함하면서 "bot"또는 "spider"가있는 줄을 제외합니다.
내 원래 명령 :
tail -f mylogfile | grep --line-buffered -v 'bot\|spider' | grep ' / '
이제 ( "-P"perl 스위치 사용) :
tail -f mylogfile | grep -P '^(?!.*(bot|spider)).*\s\/\s.*$'
반응형
'Programing' 카테고리의 다른 글
Git rebase-모든 병합 충돌이 해결 된 경우에도 계속 불평 (0) | 2020.09.01 |
---|---|
DataContractSerializer가 내 생성자를 호출하지 않습니까? (0) | 2020.09.01 |
FacebookSdk.sdkInitialize (컨텍스트)는 더 이상 사용되지 않습니다. (0) | 2020.09.01 |
참조로 shared_ptr을 전달해야합니까? (0) | 2020.09.01 |
Git 푸시 (GitHub 및 node.js) 후 내 앱을 자동으로 배포하려면 어떻게해야합니까? (0) | 2020.09.01 |