2016-07-05 48 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: ')' 
---------------------------------------------------------------------- 
    ;      ';' 
----------------------------------------------------------------------