У меня есть список ключевых слов, которые я ищу их позиции в текстовом файле.Все хорошо, пока у меня нет ключевого слова, содержащего несколько слов.
Так, например, у меня есть строка, которую я ищу:
Здравствуйте, я строка замечательных слов, которые будутвзорвать время сноваВот некоторые значения:
Значение 1: это значение для одного
Значение 2: это значение для двух
Значение 3: это значение для трех
Итак, у меня есть список ключевых слов: list = "wonderful words, value 1, value 2, value 3"
Поэтому мне нужно пройтись по списку и найти слово / фразу, а затем получить ее позицию, чтобы я мог выполнить функцию среднего уровня дляполучить данные.
Проблема в том, что когда ключевое слово представляет собой набор слов, оно игнорируется.
Любая помощь будет отличной.Спасибо!
<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>
Я пытаюсь получить начальную позицию в конце ключевого слова вплоть до начала следующего ключевого слова, чтобы получить данные между ними.Как я уже сказал, все хорошо, пока ключевое слово не состоит из нескольких слов.