Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Most unusable technology award (my nomination - regular expressions)

Most unusable technology award (my nomination - regular expressions)

Scheduled Pinned Locked Moved The Lounge
csscomalgorithmshelptutorial
65 Posts 40 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Andrew Wiles

    Every now and then I need to solve a problem for which regular expressions looks like it is the "perfect" answer. Today that happens to be validating and extracting UK postal codes from addresses. BUT Every time I try to use regular expressions I find that no-one (especially me) has a clue how to use them and that all "posted" solutions can be demonstrated as flawed and therefore dangerous to use. The sheer complexity of the expressions makes them virtually impossible to read and therefore understand. I post the wikipedia solution to demonstrate my case (GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K [ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV] |YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9] [0-9]) [0-9][ABD-HJLNP-UW-Z]{2}) Can anyone think of a less usable technology?

    www.it-workplace.com
    "If a man speaks in a forest where there is no woman to hear him, is he still wrong?"

    M Offline
    M Offline
    Michael Haines
    wrote on last edited by
    #47

    Can I nominate Lotus Notes? "I am rarely happier than when spending entire day programming my computer to perform automatically a task that it would otherwise take me a good ten seconds to do by hand." - Douglas Adams

    M 1 Reply Last reply
    0
    • A Andrew Wiles

      Every now and then I need to solve a problem for which regular expressions looks like it is the "perfect" answer. Today that happens to be validating and extracting UK postal codes from addresses. BUT Every time I try to use regular expressions I find that no-one (especially me) has a clue how to use them and that all "posted" solutions can be demonstrated as flawed and therefore dangerous to use. The sheer complexity of the expressions makes them virtually impossible to read and therefore understand. I post the wikipedia solution to demonstrate my case (GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K [ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV] |YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9] [0-9]) [0-9][ABD-HJLNP-UW-Z]{2}) Can anyone think of a less usable technology?

      www.it-workplace.com
      "If a man speaks in a forest where there is no woman to hear him, is he still wrong?"

      S Offline
      S Offline
      Steve Elmer
      wrote on last edited by
      #48

      I would like to nominate my iPhone 3G for the award. Via iOS updates, Apple managed to turn my phone into a completely useless brick. At times, it could take up to 10 seconds for one of the little "folders" to open up after tapping on it. And that was just one of the features that failed to perform. Voicemail problems, WiFi problems, frequent crashing, etc. Fortunately, my wife dropped the phone into the swimming pool and now I am a very much happier Windows Phone user.

      1 Reply Last reply
      0
      • R Rob Grainger

        That would be my approach too, and I spent a long time working with the Postal Address File in the UK. To attempt to write one regex for the whole thing leads to monstrosities like the one demonstrated. That said, I too dislike R.E.'s. They seem to me to be easy and quick to write, but tough to read. Good in an editor's search box, or tool like grep, bad in code that must be viewed by other developers. I don't object to regular languages, just the form of reg ex's that has come into use over the years. There a few examples of regular languages better done, notably in the MGrammar parser technology Microsoft tech previewed a while ago (which I guess has, unfortunately, floundered in their dev labs as they seem to have gone silent).

        C Offline
        C Offline
        CaptJosh
        wrote on last edited by
        #49

        I have to say, my tendency would be to have a list of the known postal codes and put that into an array. Then use a string compare to just look for matches to all known postal codes first. Then after that start doing evals to look for things that fit the known formats but aren't on the known list, if possible, presuming each entry is a separate line or item in an array, only putting the lines or items that haven't already matched into a separate array and checking those. Not sure if my solution is more or less complicated. It's probably colored by my experience as a LAMP dev though.

        CaptJosh There are only 10 kinds of people in the world; those who understand binary and those who don't.

        F 1 Reply Last reply
        0
        • M Michael Haines

          Can I nominate Lotus Notes? "I am rarely happier than when spending entire day programming my computer to perform automatically a task that it would otherwise take me a good ten seconds to do by hand." - Douglas Adams

          M Offline
          M Offline
          mycroft1
          wrote on last edited by
          #50

          :thumbsup: Seconded. Once a promising app dev tool, now complete garbage.

          1 Reply Last reply
          0
          • A Andrew Wiles

            Every now and then I need to solve a problem for which regular expressions looks like it is the "perfect" answer. Today that happens to be validating and extracting UK postal codes from addresses. BUT Every time I try to use regular expressions I find that no-one (especially me) has a clue how to use them and that all "posted" solutions can be demonstrated as flawed and therefore dangerous to use. The sheer complexity of the expressions makes them virtually impossible to read and therefore understand. I post the wikipedia solution to demonstrate my case (GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K [ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV] |YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9] [0-9]) [0-9][ABD-HJLNP-UW-Z]{2}) Can anyone think of a less usable technology?

            www.it-workplace.com
            "If a man speaks in a forest where there is no woman to hear him, is he still wrong?"

            V Offline
            V Offline
            Vasily Tserekh
            wrote on last edited by
            #51

            I think that you can use regular expressions for small issues but when it comes to a great problem you should use parsing instead, i am an informatic enginneer and i had to make a programm that received call records from a PBX, a friend of mine that is a cibernetic made me a regular expresssion to parse the line. but that was sort of a blackbox , because when it crashed for any reason you couldnt tell why, later I replaced it by a parser an it was much better

            1 Reply Last reply
            0
            • H Henry Minute

              I find the carriage return key to be next to useless and I see that you agree. :-D

              Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.” I wouldn't let CG touch my Abacus! When you're wrestling a gorilla, you don't stop when you're tired, you stop when the gorilla is.

              P Offline
              P Offline
              patbob
              wrote on last edited by
              #52

              Wait.. you have a useless key on your keyboard? I only have a 104 key one, now I gotta go upgrade :)

              We can program with only 1's, but if all you've got are zeros, you've got nothing.

              H 1 Reply Last reply
              0
              • P patbob

                Wait.. you have a useless key on your keyboard? I only have a 104 key one, now I gotta go upgrade :)

                We can program with only 1's, but if all you've got are zeros, you've got nothing.

                H Offline
                H Offline
                Henry Minute
                wrote on last edited by
                #53

                Yup. Right next to the 'Any' key.

                Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.” I wouldn't let CG touch my Abacus! When you're wrestling a gorilla, you don't stop when you're tired, you stop when the gorilla is.

                1 Reply Last reply
                0
                • H Henry Minute

                  I find the carriage return key to be next to useless and I see that you agree. :-D

                  Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.” I wouldn't let CG touch my Abacus! When you're wrestling a gorilla, you don't stop when you're tired, you stop when the gorilla is.

                  S Offline
                  S Offline
                  Steve Burchett
                  wrote on last edited by
                  #54

                  The carriage-return key isn't on my keyboard. Ancient typewriters had to return the carriage in order to start a new line, thus the name. Of course, you already know this, just explicating for those that don't. ;P Steve

                  Just think of it as evolution in action.

                  K 1 Reply Last reply
                  0
                  • S Steve Burchett

                    The carriage-return key isn't on my keyboard. Ancient typewriters had to return the carriage in order to start a new line, thus the name. Of course, you already know this, just explicating for those that don't. ;P Steve

                    Just think of it as evolution in action.

                    K Offline
                    K Offline
                    KP Lee
                    wrote on last edited by
                    #55

                    Steve Burchett wrote:

                    just explicating for those that don't

                    Explicating them from what situation? Ahh, those were the days, you could cut your paper in half with your printer. (Used impact devices to strike the ribbon on the paper. Then all you had to do is forget that carriage return just moves it back to the front of the line. If you didn't tell it to line feed the next line would overwrite the same location, that one line getting blacker and blacker until it was "paper" thin and wear out.

                    1 Reply Last reply
                    0
                    • S Stefan_Lang

                      I recall reading that line at least some 10 years ago, and I wondered where it came from. Apparently it's much older: at least from 1964

                      K Offline
                      K Offline
                      KP Lee
                      wrote on last edited by
                      #56

                      My dad was a carpenter and in '64 I was 11 and very tired of the expression.

                      1 Reply Last reply
                      0
                      • A Andrew Wiles

                        C# is my hammer! RegEx is one of those tools that was bought a long time ago for a very specific job and now lurks at the back of the toolbox. It only comes out very infrequently so: 1. I have to read the manual each time I use it because I have forgotten the instructions since the last time. 2. I am unwilling to invest the amount of time required to master its use because (refer to 1) I only use it very infrequently. 3. Each time I use it I have a lingering concern that I have left a problem for the next poor soul who has to maintain the solution.

                        www.it-workplace.com
                        "If a man speaks in a forest where there is no woman to hear him, is he still wrong?"

                        K Offline
                        K Offline
                        KP Lee
                        wrote on last edited by
                        #57

                        Not only do I have to reread the manual, but once I do, I find that the regex parser I'm using doesn't use that format.

                        1 Reply Last reply
                        0
                        • A Andrew Wiles

                          Every now and then I need to solve a problem for which regular expressions looks like it is the "perfect" answer. Today that happens to be validating and extracting UK postal codes from addresses. BUT Every time I try to use regular expressions I find that no-one (especially me) has a clue how to use them and that all "posted" solutions can be demonstrated as flawed and therefore dangerous to use. The sheer complexity of the expressions makes them virtually impossible to read and therefore understand. I post the wikipedia solution to demonstrate my case (GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K [ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV] |YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9] [0-9]) [0-9][ABD-HJLNP-UW-Z]{2}) Can anyone think of a less usable technology?

                          www.it-workplace.com
                          "If a man speaks in a forest where there is no woman to hear him, is he still wrong?"

                          Y Offline
                          Y Offline
                          YvesDaoust
                          wrote on last edited by
                          #58

                          Right, regular expressions easily become cryptic. But don't they look childish compared to the marvels you can so easily produce with most Unix scripting languages ?

                          lsof "$lsof_args" | grep $connection_type | grep -v "$no_match" |
                          awk '{print $9}' | cut -d : -f $field | sort | uniq |
                          sed s/"^$router"//

                          if [ "$(eval "echo \${$(echo get$(echo -ne $arch |
                          sed 's/^\(.\).*/\1/g' | tr 'a-z' 'A-Z'; echo $arch |
                          sed 's/^.\(.*\)/\1/g')):-false}")" = true ]
                          then
                          return 0;
                          else
                          return 1;
                          fi;

                          find . -name '*[+{;"\\=?~()<>&*|$ ]*' -maxdepth 0 \
                          -exec rm -f '{}' \;

                          1 Reply Last reply
                          0
                          • R Rage

                            Andrew Wiles wrote:

                            The sheer complexity of the expressions makes them virtually impossible to read and therefore understand

                            It is at this point that you need the tool support. Better said, it is not because the thing seems complicated and unreadable that I won't use it if it solves my problem best.

                            J Offline
                            J Offline
                            jsc42
                            wrote on last edited by
                            #59

                            Whilst I agree that RegExps are like Java and C, namely WORN (Write Once, Read Never), I would say that it is amazing how much you can accomplish with them with a fairly short definition. If I were writing the Post Code validator, I'd sacrifice a bit of (possible?) efficiency to aid readability, e.g. I'd change

                            A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]| etc

                            to

                            AB|AL|B|BA|BB|BD|BH|BL|BN|BR|BS|BT|BX|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|

                            Try looking for, for example, the code for Belfast (BT) in the first extract above and compare it with looking for the BT in the second extract. Just to make it simpler, I have highlighted them. [aside] What is BX the code for? [/aside] When codi ng it, you would not write it all as a long string, it could easily be broken up into manageable pieces Actually, I would add one efficiency: The Bootle code G1R 0AA is such a rare special case that I would put it at the end so it only rarely got touched rather than putting it at the begining. When coding it, you would not write it all as a long string, it could easily be broken up into manageable pieces. E.g. The following is a RegExp for TLDs (as I am too lazy to rewrite the PostCode one) which shows the technique in action:

                            clsForm_TLDs = _
                            "aero|biz|cat|com|coop|edu|gov|info|int|mil|mobi|museum|name|net|org|pro|travel" _
                            & "|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az" _
                            & "|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz" _
                            & "|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cs|cu|cv|cx|cy|cz" _
                            & "|dd|de|dj|dk|dm|do|dz" _
                            & "|ec|ee|eg|eh|er|es|et|eu" _
                            & "|fi|fj|fk|fm|fo|fr|fx" _
                            & "|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy" _
                            & "|hk|hm|hn|hr|ht|hu" _
                            & "|id|ie|il|im|in|io|iq|ir|is|it" _
                            & "|je|jm|jo|jp" _
                            & "|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz" _
                            & "|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly" _
                            & "|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz" _
                            & "|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz" _
                            & "|om" _
                            & "|pa|pc|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py" _
                            & "|qa" _
                            & "|re|ro|ru|rw" _
                            & "|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz" _
                            & "|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz" _
                            & "|ua|ug|uk|um|us|uy|uz" _
                            & "|va|vc|ve|vg|vi|vn|vu" _
                            & "|wf|ws" _
                            & "|ye|yt|yu" _
                            & "|za|zm|zr|zw"

                            R 1 Reply Last reply
                            0
                            • J jsc42

                              Whilst I agree that RegExps are like Java and C, namely WORN (Write Once, Read Never), I would say that it is amazing how much you can accomplish with them with a fairly short definition. If I were writing the Post Code validator, I'd sacrifice a bit of (possible?) efficiency to aid readability, e.g. I'd change

                              A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]| etc

                              to

                              AB|AL|B|BA|BB|BD|BH|BL|BN|BR|BS|BT|BX|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|

                              Try looking for, for example, the code for Belfast (BT) in the first extract above and compare it with looking for the BT in the second extract. Just to make it simpler, I have highlighted them. [aside] What is BX the code for? [/aside] When codi ng it, you would not write it all as a long string, it could easily be broken up into manageable pieces Actually, I would add one efficiency: The Bootle code G1R 0AA is such a rare special case that I would put it at the end so it only rarely got touched rather than putting it at the begining. When coding it, you would not write it all as a long string, it could easily be broken up into manageable pieces. E.g. The following is a RegExp for TLDs (as I am too lazy to rewrite the PostCode one) which shows the technique in action:

                              clsForm_TLDs = _
                              "aero|biz|cat|com|coop|edu|gov|info|int|mil|mobi|museum|name|net|org|pro|travel" _
                              & "|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az" _
                              & "|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz" _
                              & "|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cs|cu|cv|cx|cy|cz" _
                              & "|dd|de|dj|dk|dm|do|dz" _
                              & "|ec|ee|eg|eh|er|es|et|eu" _
                              & "|fi|fj|fk|fm|fo|fr|fx" _
                              & "|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy" _
                              & "|hk|hm|hn|hr|ht|hu" _
                              & "|id|ie|il|im|in|io|iq|ir|is|it" _
                              & "|je|jm|jo|jp" _
                              & "|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz" _
                              & "|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly" _
                              & "|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz" _
                              & "|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz" _
                              & "|om" _
                              & "|pa|pc|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py" _
                              & "|qa" _
                              & "|re|ro|ru|rw" _
                              & "|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz" _
                              & "|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz" _
                              & "|ua|ug|uk|um|us|uy|uz" _
                              & "|va|vc|ve|vg|vi|vn|vu" _
                              & "|wf|ws" _
                              & "|ye|yt|yu" _
                              & "|za|zm|zr|zw"

                              R Offline
                              R Offline
                              Rage
                              wrote on last edited by
                              #60

                              Though this might be correct, I bet the OP would be much more interested in this answer than I am. :)

                              1 Reply Last reply
                              0
                              • C CaptJosh

                                I have to say, my tendency would be to have a list of the known postal codes and put that into an array. Then use a string compare to just look for matches to all known postal codes first. Then after that start doing evals to look for things that fit the known formats but aren't on the known list, if possible, presuming each entry is a separate line or item in an array, only putting the lines or items that haven't already matched into a separate array and checking those. Not sure if my solution is more or less complicated. It's probably colored by my experience as a LAMP dev though.

                                CaptJosh There are only 10 kinds of people in the world; those who understand binary and those who don't.

                                F Offline
                                F Offline
                                Florin Jurcovici 0
                                wrote on last edited by
                                #61

                                Use a trie instead of a list. The complete list of postal codes is long, you know. Or at least have it ordered, and employ a somewhat optimized search algorithm.

                                T 1 Reply Last reply
                                0
                                • F Florin Jurcovici 0

                                  Use a trie instead of a list. The complete list of postal codes is long, you know. Or at least have it ordered, and employ a somewhat optimized search algorithm.

                                  T Offline
                                  T Offline
                                  Tim Yen
                                  wrote on last edited by
                                  #62

                                  Best answer to this so far.

                                  1 Reply Last reply
                                  0
                                  • S Stefan_Lang

                                    Yes, I've considered that too - and most of the XML-related stuff. But at least you have the option to make it halfway readable. It can be a real pain though if you have to delve in to other people's code and the original programmer took no care of naming conventions and formatting...

                                    T Offline
                                    T Offline
                                    Tim Yen
                                    wrote on last edited by
                                    #63

                                    I second that, XML looks like it was designed by a committee. Schema ( huh why use latin words, why not use english words like plan or design or layout) DTD, XSD, XPath oh my god what a mess. Some guy from the Vatican whose first language was Latin must have gone beserk when designing XML.

                                    S 1 Reply Last reply
                                    0
                                    • T Tim Yen

                                      I second that, XML looks like it was designed by a committee. Schema ( huh why use latin words, why not use english words like plan or design or layout) DTD, XSD, XPath oh my god what a mess. Some guy from the Vatican whose first language was Latin must have gone beserk when designing XML.

                                      S Offline
                                      S Offline
                                      Stefan_Lang
                                      wrote on last edited by
                                      #64

                                      Schema, yes I like that. When I think about it, the whole system of *ML languages looks like a database schema. And maybe that's all it really is: a glorified text-based database schema, only that instead of a computer, the programmers are supposed to work their way through it. Me, I prefer SQL.

                                      1 Reply Last reply
                                      0
                                      • A Andrew Wiles

                                        Every now and then I need to solve a problem for which regular expressions looks like it is the "perfect" answer. Today that happens to be validating and extracting UK postal codes from addresses. BUT Every time I try to use regular expressions I find that no-one (especially me) has a clue how to use them and that all "posted" solutions can be demonstrated as flawed and therefore dangerous to use. The sheer complexity of the expressions makes them virtually impossible to read and therefore understand. I post the wikipedia solution to demonstrate my case (GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K [ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV] |YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9] [0-9]) [0-9][ABD-HJLNP-UW-Z]{2}) Can anyone think of a less usable technology?

                                        www.it-workplace.com
                                        "If a man speaks in a forest where there is no woman to hear him, is he still wrong?"

                                        D Offline
                                        D Offline
                                        Dale Willits
                                        wrote on last edited by
                                        #65

                                        I feel very lucky to only have 7 digits as postal codes.

                                        1 Reply Last reply
                                        0
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Categories
                                        • Recent
                                        • Tags
                                        • Popular
                                        • World
                                        • Users
                                        • Groups