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.

46 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
  21. Situs Pasang Permainan IDN Poker Online Terpercaya di Indonesia, dengan minimal deposit dan withdraw cukup 10 ribu saja loh... segera bergabung ya dan menangkan jackpot ratusan juta...

    Situs Poker Online
    Poker Online
    s128
    Baccarat Online

    ReplyDelete
  22. INDIPOKER merupakan Situs layanan Judi Online dan Agen IDN Poker 88 Play Terpercaya Dengan Permainan Ceme Keliling,Domino Qiu Qiu,Bandar QQ dan Capsa Susun

    Agen Idn Poker
    Poker Online Terpercaya
    Bandar Ceme
    Ceme Keliling
    Layanan Judi Online

    ReplyDelete
  23. W88XL 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.

    Casino Online
    Slot Online
    Situs Judi
    Agen Bola Resmi Indonesia
    Seo Online

    ReplyDelete
  24. Mainkan Permainan Togel Online Terbaik dan Terlengkap di Indonesia

    Bandar Judi Togel Online
    Togel Deposit Pulsa

    ReplyDelete
  25. DewiDomino merupakan Agen Domino QQ Online Resmi Terpercaya Indonesia dan Situs Judi Poker V 88 Uang Asli Deposit Pakai Pulsa,Bandar Capsa Susun,Bandarq Sakong Adu Q Domino99 dan Ceme Terbaik

    Situs Judi Poker
    Deposit Pakai Pulsa
    Poker Online Terpercaya
    Agen Poker Indonesia
    Seo Online

    ReplyDelete
  26. BandarXL 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.

    Agen Slot Pulsa
    Slot Pakai Pulsa
    Situs Slot Online Pulsa
    Judi Casino Via Pulsa
    Casino Online
    Jasa Seo

    ReplyDelete
  27. situs judi online sangatlah penting sekarang ini bagi kita dalam menentukan situs mana yang akan kita percayai untuk bermain judi online . Situs judi online ini juga dikenal oleh para pemain judi sebagai bandar togel terpercaya adalah salah satu bandar terbaik pilihan utama pecinta judi online. Dengan 1ID akuAn yang kita daftarkan kita sudah dapat bermain semua permainan judi online di situs ini. Berbagai permainan judi online seperti: slot online , poker online , casino online, judi sportbook seperti judi bola, baskel, badminton, dll dan juga tidak ketinggalan judi togel online yang digemari pemain judi di Indonesia. Pasaran togel resmi yang tersedia seperti togel hongkong pools , togel singapore, togel sydney, togel pcso, togel bullseye and tidak lupa juga judi IDN poker

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

    ReplyDelete
  29. MPO007 sebagai situs judi online resmi dan terpercaya di Indonesia, sejak berdiri telah memberikan perlayanan terbaik dalam dunia judi online. Berbagai permainan terbaik bisa dimainkan dengan menggunakan 1 ID. Seperti slot online , poker online, judi bola, casino online, togel online dan tidak lupa juga bonus terbaik buat setiap pemain judi online yang bermain bersama MPO007

    ReplyDelete