首页 > 解决方案 > FindNoCase 不适用于多个单词搜索

问题描述

我有一个关键字列表,我正在寻找它们在文本文件中的位置。一切都很好,直到我有一个包含多个单词的关键字。

例如,我有一个正在搜索的字符串:

你好,我是一串美妙的词,会再次让你大吃一惊。以下是一些值:

值 1:这是一个的
值 值 2:这是两个的
值 值 3:这是三个的值

所以我有一个关键字列表:list = "wonderful words, value 1, value 2, value 3"

所以我需要遍历列表并找到单词/短语,然后获取它的位置,这样我就可以执行 mid 函数来获取数据。

问题是当关键字是单词的集合时,它会被忽略。

任何帮助都会很棒。谢谢!

 <cfset stringToSearch = "INCIDENT # 12345

 LONG TERM SYS#   C12345
 REPORTED: 15:08:34 05/21/19
  Nature: MEDICAL
 Address: 34234 W Test ST; 312S
 City: Testville

 Responding Units: F32423

 Cross Streets:
 Between: Test ST & N Tester ST

 Lat= 39.429019        Lon= -86.432111

 Comments: This is a comment"> 

 <cfset list_to_search = 'INCIDENT:,LONG TERM  SYS:,REPORTED:,Nature:,Address:,City:,Responding Units:,Cross Streets:,Lat=,Lon=,Comments'>

 <cfoutput>

 <cfset x = '1'>
 <cfset last_keyword = "">
 <cfloop list="#list_to_search#" index="keyword" delimiters=",">
     <cfif #x# neq '1'>
     #x#. #last_keyword# - #keyword# <br><br>
     1st: #REFind(last_keyword,stringToSearch)#<br>
     2nd: #REFind(keyword,stringToSearch)#<br>
     #x#. #last_keyword#: #Mid(stringToSearch,       
     FindNoCase(last_keyword,stringToSearch)+len(last_keyword),   
     FindNoCase(keyword,stringToSearch)-  
     FindNoCase(last_keyword,stringToSearch))#<br><br>
    </cfif>
    <cfset last_keyword = #keyword#>
    <cfset #x# = #x# + 1>
</cfloop>

我试图从关键字末尾的起始位置一直到下一个关键字的开头,以获取介于两者之间的数据。就像我说的那样,在多词关键字之前一切都很好。

标签: coldfusion

解决方案


推荐阅读