Please navigate to the bottom of the page for Table of Contents

Friday, July 27, 2012

Regular Expressions interview questions–part 2

In our previous post, we talked about regular expression character sets, groups, quantifiers, shorthand and gives a full solution to matching a a 10-digit, US phone number, with or without parentheses, hyphens, or dots and optional 3 digit area code. In this post, we well dive deeper into some examples of pattern matching.

Regular expressions at their core are all about pattern finding and matching – strings, digits, letters or characters.

Question: Show different ways of matching digits and non-digits using regular expressions.

There are many ways to match a single digit

  • \d
  • [0-9]
  • [0123456789]
  • [012] – matches to either 0, 1 or 2

Similarly, there are many ways to match to a non-digit.

  • \D
  • [^0-9]
  • [^\d]

A couple of notes:

  1. ^ signals negation of the expression to the processor.
  2. \D matches whitespace, punctuation, quotation marks, hyphens, forward slashes, square brackets, and other similar characters.

Question: Explain the different ways to match words and non-words.

  •  \w is the main character shorthand for matching letters and numbers. Consider it to match alpha numeric characters.
  • [a-zA-Z0-9] is the same as \w.
  • Note that \D matches whitespace also; \w does not.
  • \W (capital W) matches non-word matches - whitespace, punctuation, and other kinds of characters that
    aren’t used in words.
  • [^a-zA-Z0-9] is the same as \W (capital).

Question: Write a regular expression to match anything that is a non-space.

  • Space (blank) can be matched by \s. So to match non-space character, we can use \S.
  • Another equivalent way to match non-space would be [^\s]
  • Yet another way would be [^ \t\n\r]

Question: Write a regular expression to match words that are exactly 7 characters in length and start with P and end with D.

In this question, the interviewer is testing your ability to understand word boundaries and repeat notations. The following expression solves this question: \bP.{5}D\b.

To dissect the expression:

  • The shorthand \b matches a word boundary, without consuming any characters.
  • The characters P and D also bound the sequence of characters.
  • .{5} matches any five characters.
  • Match another word boundary with \b.

30 comments:

  1. The above solution does not work if there are multiple 7 character words starting with P and ending in D. It only returns the first such word

    ReplyDelete
  2. use g identifier as in m/$pattern/g;

    ReplyDelete
  3. this will work.[P]\B.{5}[D]\b

    ReplyDelete
  4. It’s going to be finish of mine day, however before finish I am reading this fantastic post to increase my knowledge.

    I love this site – its so usefull and helpfull Pakar Seo this website is extremely helpful Pakar Seo its so usefull and helpfull Pakar Seo I just want to say I’m newbie to blogging and site-building and actually liked this blog site. Pakar Seo Very likely I’m planning to bookmark your blog post . You amazingly have awesome article content. Regards for revealing your blog site. Pakar Seo ....

    ReplyDelete
  5. Ni Hau,


    Allow me to show my gratitude bloggers. You guys are like unicorns. Never seen but always spreading magic. Your content is yummy. So satisfied.



    I'd like to post some questions
    concerning the next listed code.
    The code is from the Core Java book (the second volume).
    There are two classes: TreeSetTest and class Item which implements Comparable.
    The first class, which contains the main method is straight foreward and does not
    cause any problems for me.




    I read multiple articles and watched many videos about how to use this tool - and was still confused! Your instructions were easy to understand and made the process simple.


    Best Regards,
    Ajeeth

    ReplyDelete
  6. Hi,

    I want query for one question i.e if
    input:firstname.lastname@gmail.com
    output:lastname gmail.com
    please reply asap.

    ReplyDelete
  7. Main dan dapatkan keuntungan uang asli dengan bermain poker online, daftarkan sekrang juga dengan cari disini , what are you waiting for ?

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. DewiDomino merupakan Agen Domino QQ Online Resmi Terpercaya Indonesia dan Situs Judi Poker V 88 Uang Asli Deposit Via Pulsa,Bandar Capsa Susun,Bandarq Sakong Adu Q Domino99 dan Ceme Terbaik hanya di http://w88messi.biz

    Agen Poker Resmi
    BandarQ Indonesia
    Agen Poker Online
    Poker V
    Seo Online

    ReplyDelete
  10. Amazing and lovely, I like it and i will share it to others. Join us at http://bolanet88.biz

    Agen Bola Indonesia
    Casino Online
    Aplikasi Judi Bola Online
    Situs Bola

    ReplyDelete
  11. great post you have guys and i really like it.. please visit us at http://jampoker.co

    Agen Idn Poker
    Poker Online Terpercaya
    Situs Poker Indonesia
    Seo Online

    ReplyDelete
  12. Yukk Gabung Bersama MileniaPoker - Poker Deposit Pulsa Dengan fitur - fitur lengkap serta Customer Service yang 24 jam. Poker Online

    ReplyDelete
  13. yuk daftar sekarang juga di INDOBET dimana Indo36 terpilih sebagai Bandar Judi Slot Online terbagus dan terbaik yang ada di Indonesia.

    Segera gabung bersama kami dan dapatkan kesempatan memenangkan hadiah jutaan rupiah. Indo36 sebagai Situs Judi Slot Online terbaik juga menyediakan layanan Judi Deposit Pulsa XL,Axis dan Telkomsel yang dapat digunakan sebagai alternatif transaksi

    ReplyDelete
  14. Whilst looking for a charging spot for my electric car it came to me. When it comes to buying seafood, it just simply isn’t worth trying to save a few pounds choosing dredged over hand-caught scallops. Add that to the list of promises Obama has broken.

    sbobet mobile
    situs poker online
    poker online
    Adu Ayam
    bonus deposit poker
    game online domino

    ReplyDelete
  15. Merupakan Situs Judi Sbobetuk Online Terbaik dan Terpercaya di Indonesia. Sebagai Bandar terekomendasi untuk para bettor di Indonesia, di sini anda akan mendapatkan segala kemudahan untuk bertaruh.

    ReplyDelete
  16. http://BandarXL.net merupakan Agen Slot Online Resmi Indonesia Deposit Pakai Pulsa Via OVO, Telkomsel, XL, dan GOPAY di Asia yang menyediakan permainan Situs Slot, Casino Online, Bandar Taruhan Bola Sbobet Terpercaya, Poker Online, Togel, Keno, dan Lotere.

    Situs Slot
    Deposit Pakai Pulsa
    Agen Slot Online
    Judi Casino Indonesia
    Jasa Seo Online

    ReplyDelete
  17. Very interesting blog. Alot of blogs I see these days don't really provide anything that I'm interested in, but I'm most definately interested in this one. Just thought that I would post and let you know

    Agen Poker IDN

    ReplyDelete
  18. I’m honored to obtain a call coming from a friend as he discovered the important recommendations shared on your own site. Browsing your blog posting is a real wonderful experience.
    Thanks again for thinking of readers just like
    me, and I want for you the best of achievements like a professional in this discipline.

    Game Domino Online

    domino player
    master domino
    rocang bonuses
    card gaple
    domino agents

    ReplyDelete
  19. Merupakan Situs Judi Agen Sbobet Online Terbaik dan Terpercaya di Indonesia. Sebagai Bandar terekomendasi untuk para bettor di Indonesia, di sini anda akan mendapatkan segala kemudahan untuk bertaruh.

    ReplyDelete
  20. Segera daftarkan diri anda sekarang juga di QQ1221 - Bandar Judi Online Terbesar dan Terpercaya di Indonesia.

    Link Alternatif QQ1221

    ReplyDelete