2016-07-05 50 views
-1

我想写一些正则表达式来模拟JavaScript中的includesendsWith函数。我有一个字符串(“泰德”)。我想看看是否包含该字符串,或者使用正则表达式查看其他任何字符串的末尾。String正则表达式 - 包括和结尾With

我看到一些\b的例子,我从来没有见过。这让我想知道是否有一些增强的RegEx,我一直没有找到任何有关信息。

+0

'/泰德/'和'/泰德$ /'和'Array.prototype.some'? –

+3

我希望人们在downvote时会添加评论。基本上,展示你到目前为止所尝试的内容,并且人们更愿意提供帮助,而不仅仅是为你写代码。 – SoluableNonagon

+0

是的,需要更多的信息,你是什么意思的“其他字符串”?难道你不能通过使用“特德”字符串的循环逐一搜索其他字符串吗?在这种情况下,我认为你想在表达式结尾使用\ g正则表达式(g代表全局),它会搜索整个字符串,查找正在搜索的字符串中的所有匹配项 –

回答

0

说明

(?:(?=(?:(for)$)?)(for)) 

Regular expression visualization

**要看到图像更好,只需右键点击在新窗口中的图像,然后选择查看

这个正则表达式将执行以下操作:

  • 模拟如果字符串包含子字符for,则包含和结束功能
  • 然后捕获组2将被填充。
  • 如果字符串以for结尾,则捕获组1将被填充。

注:

  • 在Javascript中你可以运行匹配,则使用匹配的的.index属性返回匹配的字符位置。
  • 这是正则表达式,子字符串for也将匹配,如果子字符串位于其他单词如before内,但这似乎超出了当前问题的范围。

现场演示

https://regex101.com/r/bO5vO3/1

示例文本

Are these the droids for we for are looking for? These are not the droids you are looking for 

Match:    ^1^ ^2^    ^3^           ^4^ 

第二行示出了positio为了说明的目的,这里手动插入了ns,不应将其视为实际示例文本的一部分。

样品匹配

MATCH 1 
2. `for` 

MATCH 2 
2. `for` 

MATCH 3 
2. `for` 

MATCH 4 
1. `for` 
2. `for` 

说明

NODE      EXPLANATION 
---------------------------------------------------------------------- 
    [\$]      any character of: '\$' 
---------------------------------------------------------------------- 
    this-translate   'this-translate' 
---------------------------------------------------------------------- 
    [(]      any character of: '(' 
---------------------------------------------------------------------- 
    '      '\'' 
---------------------------------------------------------------------- 
    (      group and capture to \1: 
---------------------------------------------------------------------- 
    (?:      group, but do not capture (0 or more 
          times (matching the most amount 
          possible)): 
---------------------------------------------------------------------- 
     [^'\\]     any character except: ''', '\\' 
---------------------------------------------------------------------- 
    |      OR 
---------------------------------------------------------------------- 
     \\      '\' 
---------------------------------------------------------------------- 
     .      any character except \n 
---------------------------------------------------------------------- 
    |      OR 
---------------------------------------------------------------------- 
     ''      '\'\'' 
---------------------------------------------------------------------- 
    )*      end of grouping 
---------------------------------------------------------------------- 
)      end of \1 
---------------------------------------------------------------------- 
    '      '\'' 
---------------------------------------------------------------------- 
    [)]      any character of: ')' 
---------------------------------------------------------------------- 
    ;      ';' 
----------------------------------------------------------------------