RegEx Exclude a specific string even if it meets group criteria





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I am not sure how to explain it in a title so an example will be better.



I am trying to parse phone numbers and general number and I want my phone numbers to not be taken into consideration by my expression.



My text is the following:



My phone numbers are +4405490198756 | 05490198756 | 05 49 01 98 756 and my numbers are 4123-0123-6123-7123 | 4123512361237123 | 4123 5123 6123 7123



My expression is (?:4[0-9]{12}(?:[0-9]{3})?|b(?:d[ -]*?){13,16}b)



Basically, I am taking everything starting by 4 with 12 or 15 characters between 0 and 9 after and I don't consider spaces nor '-'.



My phone number +4405490198756 is included in the result of this regex at least the numeric part since it answers the expression.
I don't want it to be included in the results.



I tried to play with b^[+]d{13,16}b and everything I could think about around that but nothing worked.



Any idea on I should proceed?



Thanks in advance.










share|improve this question























  • If you are writing it in JS, (?:^|[^d+])(4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b and grab Group 1. Else, (?<![d+])(?:4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b might do (demo).

    – Wiktor Stribiżew
    Nov 21 '18 at 21:11








  • 2





    It's probably easier to filter out your number from the result in the application code rather than trying to do this in the regexp itself.

    – Barmar
    Nov 21 '18 at 21:22











  • It's often easy to get caught up in trying to write one RegEx that does everything you need to. Sometimes this is overly complicated, and this is a good example. Rather than trying to exclude one specific match from a pattern here. Match the phone number patterns first, then in a second expression, exclude your phone number.

    – Mako212
    Nov 21 '18 at 22:21











  • Why did you put the entire regex into a non-capturing group (?:xxx)?

    – Andreas
    Nov 21 '18 at 22:34


















0















I am not sure how to explain it in a title so an example will be better.



I am trying to parse phone numbers and general number and I want my phone numbers to not be taken into consideration by my expression.



My text is the following:



My phone numbers are +4405490198756 | 05490198756 | 05 49 01 98 756 and my numbers are 4123-0123-6123-7123 | 4123512361237123 | 4123 5123 6123 7123



My expression is (?:4[0-9]{12}(?:[0-9]{3})?|b(?:d[ -]*?){13,16}b)



Basically, I am taking everything starting by 4 with 12 or 15 characters between 0 and 9 after and I don't consider spaces nor '-'.



My phone number +4405490198756 is included in the result of this regex at least the numeric part since it answers the expression.
I don't want it to be included in the results.



I tried to play with b^[+]d{13,16}b and everything I could think about around that but nothing worked.



Any idea on I should proceed?



Thanks in advance.










share|improve this question























  • If you are writing it in JS, (?:^|[^d+])(4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b and grab Group 1. Else, (?<![d+])(?:4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b might do (demo).

    – Wiktor Stribiżew
    Nov 21 '18 at 21:11








  • 2





    It's probably easier to filter out your number from the result in the application code rather than trying to do this in the regexp itself.

    – Barmar
    Nov 21 '18 at 21:22











  • It's often easy to get caught up in trying to write one RegEx that does everything you need to. Sometimes this is overly complicated, and this is a good example. Rather than trying to exclude one specific match from a pattern here. Match the phone number patterns first, then in a second expression, exclude your phone number.

    – Mako212
    Nov 21 '18 at 22:21











  • Why did you put the entire regex into a non-capturing group (?:xxx)?

    – Andreas
    Nov 21 '18 at 22:34














0












0








0








I am not sure how to explain it in a title so an example will be better.



I am trying to parse phone numbers and general number and I want my phone numbers to not be taken into consideration by my expression.



My text is the following:



My phone numbers are +4405490198756 | 05490198756 | 05 49 01 98 756 and my numbers are 4123-0123-6123-7123 | 4123512361237123 | 4123 5123 6123 7123



My expression is (?:4[0-9]{12}(?:[0-9]{3})?|b(?:d[ -]*?){13,16}b)



Basically, I am taking everything starting by 4 with 12 or 15 characters between 0 and 9 after and I don't consider spaces nor '-'.



My phone number +4405490198756 is included in the result of this regex at least the numeric part since it answers the expression.
I don't want it to be included in the results.



I tried to play with b^[+]d{13,16}b and everything I could think about around that but nothing worked.



Any idea on I should proceed?



Thanks in advance.










share|improve this question














I am not sure how to explain it in a title so an example will be better.



I am trying to parse phone numbers and general number and I want my phone numbers to not be taken into consideration by my expression.



My text is the following:



My phone numbers are +4405490198756 | 05490198756 | 05 49 01 98 756 and my numbers are 4123-0123-6123-7123 | 4123512361237123 | 4123 5123 6123 7123



My expression is (?:4[0-9]{12}(?:[0-9]{3})?|b(?:d[ -]*?){13,16}b)



Basically, I am taking everything starting by 4 with 12 or 15 characters between 0 and 9 after and I don't consider spaces nor '-'.



My phone number +4405490198756 is included in the result of this regex at least the numeric part since it answers the expression.
I don't want it to be included in the results.



I tried to play with b^[+]d{13,16}b and everything I could think about around that but nothing worked.



Any idea on I should proceed?



Thanks in advance.







regex regex-negation regex-lookarounds regex-group






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 '18 at 21:00









Dimitri.BLDimitri.BL

1




1













  • If you are writing it in JS, (?:^|[^d+])(4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b and grab Group 1. Else, (?<![d+])(?:4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b might do (demo).

    – Wiktor Stribiżew
    Nov 21 '18 at 21:11








  • 2





    It's probably easier to filter out your number from the result in the application code rather than trying to do this in the regexp itself.

    – Barmar
    Nov 21 '18 at 21:22











  • It's often easy to get caught up in trying to write one RegEx that does everything you need to. Sometimes this is overly complicated, and this is a good example. Rather than trying to exclude one specific match from a pattern here. Match the phone number patterns first, then in a second expression, exclude your phone number.

    – Mako212
    Nov 21 '18 at 22:21











  • Why did you put the entire regex into a non-capturing group (?:xxx)?

    – Andreas
    Nov 21 '18 at 22:34



















  • If you are writing it in JS, (?:^|[^d+])(4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b and grab Group 1. Else, (?<![d+])(?:4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b might do (demo).

    – Wiktor Stribiżew
    Nov 21 '18 at 21:11








  • 2





    It's probably easier to filter out your number from the result in the application code rather than trying to do this in the regexp itself.

    – Barmar
    Nov 21 '18 at 21:22











  • It's often easy to get caught up in trying to write one RegEx that does everything you need to. Sometimes this is overly complicated, and this is a good example. Rather than trying to exclude one specific match from a pattern here. Match the phone number patterns first, then in a second expression, exclude your phone number.

    – Mako212
    Nov 21 '18 at 22:21











  • Why did you put the entire regex into a non-capturing group (?:xxx)?

    – Andreas
    Nov 21 '18 at 22:34

















If you are writing it in JS, (?:^|[^d+])(4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b and grab Group 1. Else, (?<![d+])(?:4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b might do (demo).

– Wiktor Stribiżew
Nov 21 '18 at 21:11







If you are writing it in JS, (?:^|[^d+])(4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b and grab Group 1. Else, (?<![d+])(?:4[0-9]{12}(?:[0-9]{3})?|(?:d[ -]*?){13,16})b might do (demo).

– Wiktor Stribiżew
Nov 21 '18 at 21:11






2




2





It's probably easier to filter out your number from the result in the application code rather than trying to do this in the regexp itself.

– Barmar
Nov 21 '18 at 21:22





It's probably easier to filter out your number from the result in the application code rather than trying to do this in the regexp itself.

– Barmar
Nov 21 '18 at 21:22













It's often easy to get caught up in trying to write one RegEx that does everything you need to. Sometimes this is overly complicated, and this is a good example. Rather than trying to exclude one specific match from a pattern here. Match the phone number patterns first, then in a second expression, exclude your phone number.

– Mako212
Nov 21 '18 at 22:21





It's often easy to get caught up in trying to write one RegEx that does everything you need to. Sometimes this is overly complicated, and this is a good example. Rather than trying to exclude one specific match from a pattern here. Match the phone number patterns first, then in a second expression, exclude your phone number.

– Mako212
Nov 21 '18 at 22:21













Why did you put the entire regex into a non-capturing group (?:xxx)?

– Andreas
Nov 21 '18 at 22:34





Why did you put the entire regex into a non-capturing group (?:xxx)?

– Andreas
Nov 21 '18 at 22:34












0






active

oldest

votes












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',
autoActivateHeartbeat: false,
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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53420413%2fregex-exclude-a-specific-string-even-if-it-meets-group-criteria%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53420413%2fregex-exclude-a-specific-string-even-if-it-meets-group-criteria%23new-answer', 'question_page');
}
);

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







Popular posts from this blog

Guess what letter conforming each word

Port of Spain

Run scheduled task as local user group (not BUILTIN)