Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #15791

Re: regexp help

Message-ID <3457030.NDG8SBlVoo@PointedEars.de> (permalink)
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Organization PointedEars Software (PES)
Date 2012-09-08 09:34 +0200
Subject Re: regexp help
Newsgroups comp.lang.javascript
References <fqydnZxNJ4Gw59TNnZ2dnUVZ_sidnZ2d@westnet.com.au> <aatr4mFvsbU1@mid.uni-berlin.de> <1492793.DGNhQbDWfW@PointedEars.de> <0JWdnZHHxY1_DdfNnZ2dnUVZ_vednZ2d@westnet.com.au>
Followup-To comp.lang.javascript

Followups directed to: comp.lang.javascript

Show all headers | View raw


Andrew Poulos wrote:

> On 7/09/2012 11:36 PM, Thomas 'PointedEars' Lahn wrote:
>> Jake Jarvis wrote:
>>> On 07.09.2012 06:37, wrote Andrew Poulos:
>>>> I have a string
>>>> var str = 'This is some text.';
>>>>
>>>> Within that string I need to find whether a whole word exists. The test
>>>> is to be case insensitive. The word to test for is held in the var 'k'.
>>>>
>>>> When I try this:
>>>>
>>>> var k = 'SOME';
>>>> var myRe = new RegExp("b" + k + "b", "i");
>>>> var found = myRe.test(str);
>>>>
>>>> I expected 'found' to return true. What am I doing wrong?
>>>
>>> You are not escaping the two 'b' characters.
>>>
>>> There are 2 levels here: the level of the regular expression in which
>>> you want '\b', and the level of the pattern string in which you need
>>> '\\b', because strings have their own escape rules which apply first and
>>> under those '\b' means "backspace character", whereas '\\b' means
>>> "backslash b".
>>
>> In addition, \b is not sufficient in most cases as it matches a boundary
>> between a "word character" and "not-a-word-character".  Word characters
>> are those matched by `\w', which in turn is defined as the equivalent of
>> [0-9A-Za-z_].  Non-ASCII letters are not included.  Even basically
>> English text can contain non-ASCII characters (borrowed from or written
>> in other languages):
> 
> Hmm, that means that common apostrophe'd words such as "don't" or
> "Andrew's" would not be matched.

Why don't you try?  They would:

  \b d o n \b ' \b t \b
   | | | |    |    |  |
  \b d o n    '    t \b

The problem is here, for example:

 \b B a h n \b ü \b b e r g a n g \b  ("railroad crossing" in German)
  | | | | |  |
 \b B a h n \b                        ("railroad" in German)

> BTW is "don't" considered a single word?

That depends on how you define a word.  With the native \w+: No, because it 
contains one character that is not a word character, it would be considered 
two words, and there would be two matches with /\w+/g.

>> <http://stackoverflow.com/questions/1015844/how-to-remove-all-characters-
>> from-a-string/8568325#8568325> f.
>>
>> Which gives me the idea that a Unicode mode for jsx.regexp.RegExp() to
>> replace \b, \w and \W – in addition to or using the already implemented
>> Unicode character properties (\p{Lu} et al.) – would come in handy.
>> Comments anyone?
> 
> I understand what you're suggesting but I don't know enough about the
> topic to make suggestions.

IOW, would you find it useful to match words containing non-ASCII letters 
with `new jsx.regexp.RegExp("\\w+", "u")'?


PointedEars
-- 
    realism:    HTML 4.01 Strict
    evangelism: XHTML 1.0 Strict
    madness:    XHTML 1.1 as application/xhtml+xml
                                                    -- Bjoern Hoehrmann

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

regexp help Andrew Poulos <ap_prog@hotmail.com> - 2012-09-07 14:37 +1000
  Re: regexp help Jake Jarvis <pig_in_shoes@yahoo.com> - 2012-09-07 10:55 +0200
    Re: regexp help Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-07 15:36 +0200
      Re: regexp help Andrew Poulos <ap_prog@hotmail.com> - 2012-09-08 10:27 +1000
        Re: regexp help Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-08 09:34 +0200
      Re: regexp help "Scott Sauyet" <3103invalid@webnews.fastusenet.org> - 2012-09-11 16:51 +0000
        Re: regexp help Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-11 22:31 +0200
          Re: regexp help "Scott Sauyet" <3103invalid@webnews.fastusenet.org> - 2012-09-19 11:56 +0000
            Re: regexp help Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-19 18:51 +0200
              Re: regexp help Scott Sauyet <scott.sauyet@gmail.com> - 2012-09-19 12:52 -0700
                Re: regexp help Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-20 02:13 +0200
                Re: regexp help Scott Sauyet <scott.sauyet@gmail.com> - 2012-09-20 06:51 -0700
                Re: regexp help Dr J R Stockton <reply1237@merlyn.demon.co.uk.invalid> - 2012-09-20 20:23 +0100
      Re: regexp help "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2012-09-11 14:55 -0700

csiph-web