以下正则表达式在子字符串FTW和ODP之间查找文本。

/FTW(((?!FTW|ODP).)+)ODP+/


(?! ... )是做什么的?

最佳答案

(?!regex)zero-width negative lookahead。它将测试当前光标位置处的字符并向前移动,测试它们与提供的正则表达式不匹配,然后将光标返回到其开始位置。

整个正则表达式:

/
 FTW           # Match Characters 'FTW'
 (             # Start Match Group 1
  (             # Start Match Group 2
   (?!FTW|ODP)   # Ensure next characters are NOT 'FTW' or 'ODP', without matching
   .             # Match one character
  )+            # End Match Group 2, Match One or More times
 )             # End Match Group 1
 OD            # Match characters 'OD'
 P+            # Match 'P' One or More times
/


因此-寻找FTW,然后在寻找ODP+结束字符串时捕获。还要确保FTWODP+之间的数据不包含FTWODP

09-09 17:00