Regular expression exclude some words but match to one
up vote
0
down vote
favorite
Is it possible to write a regex which is matching to "findme" but doesn't match if the line contains "black" or "red" or "yellow" words?
Possible regex: (?!black|red|yellow)findme
excluded words: yellow , black , red
Test lines:
findme (OK)
xyz (NOT!)
XYZfindmeXYZ (OK)
somethingelseFINDMEsome_thingelse (OK)
BLACK_ findme (NOT !)
BLACK findme (NOT !)
XyBlacK findme xyz_xy (NOT !)
xy findme RED (NOT !)
yellow__ findme _xy (NOT !)
_xy_ findme _something (OK)
regex regex-negation regex-lookarounds
add a comment |
up vote
0
down vote
favorite
Is it possible to write a regex which is matching to "findme" but doesn't match if the line contains "black" or "red" or "yellow" words?
Possible regex: (?!black|red|yellow)findme
excluded words: yellow , black , red
Test lines:
findme (OK)
xyz (NOT!)
XYZfindmeXYZ (OK)
somethingelseFINDMEsome_thingelse (OK)
BLACK_ findme (NOT !)
BLACK findme (NOT !)
XyBlacK findme xyz_xy (NOT !)
xy findme RED (NOT !)
yellow__ findme _xy (NOT !)
_xy_ findme _something (OK)
regex regex-negation regex-lookarounds
In what context? What language are you working with? What are you trying to achieve?
– Andy Lester
Nov 9 at 18:21
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Is it possible to write a regex which is matching to "findme" but doesn't match if the line contains "black" or "red" or "yellow" words?
Possible regex: (?!black|red|yellow)findme
excluded words: yellow , black , red
Test lines:
findme (OK)
xyz (NOT!)
XYZfindmeXYZ (OK)
somethingelseFINDMEsome_thingelse (OK)
BLACK_ findme (NOT !)
BLACK findme (NOT !)
XyBlacK findme xyz_xy (NOT !)
xy findme RED (NOT !)
yellow__ findme _xy (NOT !)
_xy_ findme _something (OK)
regex regex-negation regex-lookarounds
Is it possible to write a regex which is matching to "findme" but doesn't match if the line contains "black" or "red" or "yellow" words?
Possible regex: (?!black|red|yellow)findme
excluded words: yellow , black , red
Test lines:
findme (OK)
xyz (NOT!)
XYZfindmeXYZ (OK)
somethingelseFINDMEsome_thingelse (OK)
BLACK_ findme (NOT !)
BLACK findme (NOT !)
XyBlacK findme xyz_xy (NOT !)
xy findme RED (NOT !)
yellow__ findme _xy (NOT !)
_xy_ findme _something (OK)
regex regex-negation regex-lookarounds
regex regex-negation regex-lookarounds
asked Nov 9 at 16:16
user2287094
358
358
In what context? What language are you working with? What are you trying to achieve?
– Andy Lester
Nov 9 at 18:21
add a comment |
In what context? What language are you working with? What are you trying to achieve?
– Andy Lester
Nov 9 at 18:21
In what context? What language are you working with? What are you trying to achieve?
– Andy Lester
Nov 9 at 18:21
In what context? What language are you working with? What are you trying to achieve?
– Andy Lester
Nov 9 at 18:21
add a comment |
2 Answers
2
active
oldest
votes
up vote
1
down vote
You can use the following regex:
^(?!.*(?:black|red|yellow)).*(findme)
Demo: https://regexr.com/42r4q
Details:
^- matches start of the string(?!)- negative lookahead.*- Match any character (except newlines) 0+ times(?:)- non-capturing groupblack|red|yellow- matches 'black', 'red' or 'yellow'findme- matches 'findme' string
Flags:
g- globali- case-insensitivem- multiline
1
You don’t need the trailing look ahead. The first look ahead covers the entire input.
– Bohemian♦
Nov 9 at 18:07
Aha! thanks. I just noticed the fact.
– rv7
Nov 9 at 18:12
add a comment |
up vote
0
down vote
Use a negative look ahead, anchored to start, for the unwanted terms:
^(?i)(?!.*(black|red|yellow)).*findme
See live demo passing all your tests.
(?i) means “ignore case"(?!...) is a negative look ahead (asserts without consuming that the expression is not found)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53229463%2fregular-expression-exclude-some-words-but-match-to-one%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
You can use the following regex:
^(?!.*(?:black|red|yellow)).*(findme)
Demo: https://regexr.com/42r4q
Details:
^- matches start of the string(?!)- negative lookahead.*- Match any character (except newlines) 0+ times(?:)- non-capturing groupblack|red|yellow- matches 'black', 'red' or 'yellow'findme- matches 'findme' string
Flags:
g- globali- case-insensitivem- multiline
1
You don’t need the trailing look ahead. The first look ahead covers the entire input.
– Bohemian♦
Nov 9 at 18:07
Aha! thanks. I just noticed the fact.
– rv7
Nov 9 at 18:12
add a comment |
up vote
1
down vote
You can use the following regex:
^(?!.*(?:black|red|yellow)).*(findme)
Demo: https://regexr.com/42r4q
Details:
^- matches start of the string(?!)- negative lookahead.*- Match any character (except newlines) 0+ times(?:)- non-capturing groupblack|red|yellow- matches 'black', 'red' or 'yellow'findme- matches 'findme' string
Flags:
g- globali- case-insensitivem- multiline
1
You don’t need the trailing look ahead. The first look ahead covers the entire input.
– Bohemian♦
Nov 9 at 18:07
Aha! thanks. I just noticed the fact.
– rv7
Nov 9 at 18:12
add a comment |
up vote
1
down vote
up vote
1
down vote
You can use the following regex:
^(?!.*(?:black|red|yellow)).*(findme)
Demo: https://regexr.com/42r4q
Details:
^- matches start of the string(?!)- negative lookahead.*- Match any character (except newlines) 0+ times(?:)- non-capturing groupblack|red|yellow- matches 'black', 'red' or 'yellow'findme- matches 'findme' string
Flags:
g- globali- case-insensitivem- multiline
You can use the following regex:
^(?!.*(?:black|red|yellow)).*(findme)
Demo: https://regexr.com/42r4q
Details:
^- matches start of the string(?!)- negative lookahead.*- Match any character (except newlines) 0+ times(?:)- non-capturing groupblack|red|yellow- matches 'black', 'red' or 'yellow'findme- matches 'findme' string
Flags:
g- globali- case-insensitivem- multiline
edited Nov 9 at 18:26
answered Nov 9 at 16:23
rv7
2,1751323
2,1751323
1
You don’t need the trailing look ahead. The first look ahead covers the entire input.
– Bohemian♦
Nov 9 at 18:07
Aha! thanks. I just noticed the fact.
– rv7
Nov 9 at 18:12
add a comment |
1
You don’t need the trailing look ahead. The first look ahead covers the entire input.
– Bohemian♦
Nov 9 at 18:07
Aha! thanks. I just noticed the fact.
– rv7
Nov 9 at 18:12
1
1
You don’t need the trailing look ahead. The first look ahead covers the entire input.
– Bohemian♦
Nov 9 at 18:07
You don’t need the trailing look ahead. The first look ahead covers the entire input.
– Bohemian♦
Nov 9 at 18:07
Aha! thanks. I just noticed the fact.
– rv7
Nov 9 at 18:12
Aha! thanks. I just noticed the fact.
– rv7
Nov 9 at 18:12
add a comment |
up vote
0
down vote
Use a negative look ahead, anchored to start, for the unwanted terms:
^(?i)(?!.*(black|red|yellow)).*findme
See live demo passing all your tests.
(?i) means “ignore case"(?!...) is a negative look ahead (asserts without consuming that the expression is not found)
add a comment |
up vote
0
down vote
Use a negative look ahead, anchored to start, for the unwanted terms:
^(?i)(?!.*(black|red|yellow)).*findme
See live demo passing all your tests.
(?i) means “ignore case"(?!...) is a negative look ahead (asserts without consuming that the expression is not found)
add a comment |
up vote
0
down vote
up vote
0
down vote
Use a negative look ahead, anchored to start, for the unwanted terms:
^(?i)(?!.*(black|red|yellow)).*findme
See live demo passing all your tests.
(?i) means “ignore case"(?!...) is a negative look ahead (asserts without consuming that the expression is not found)
Use a negative look ahead, anchored to start, for the unwanted terms:
^(?i)(?!.*(black|red|yellow)).*findme
See live demo passing all your tests.
(?i) means “ignore case"(?!...) is a negative look ahead (asserts without consuming that the expression is not found)
edited Nov 9 at 18:16
answered Nov 9 at 18:10
Bohemian♦
293k63412551
293k63412551
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53229463%2fregular-expression-exclude-some-words-but-match-to-one%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
In what context? What language are you working with? What are you trying to achieve?
– Andy Lester
Nov 9 at 18:21