anibalgallego Posted January 30, 2020 Share Posted January 30, 2020 (edited) Hi Im trying to find "CFU-1" in this text: "CLIP-1 CLIR-1 SOCFU-1" I have this: $string = ClipGet() If StringInStr($string, "CFU-1") Then ;somecode Endif It finds "SOCFU-1" as "CFU-1" but I need to get 'True' only when exactly "CFU-1" is in clipboard. Any help? Thanks Edited January 30, 2020 by anibalgallego Link to comment Share on other sites More sharing options...
jguinch Posted January 30, 2020 Share Posted January 30, 2020 (edited) Well, just : If $string = "SOCFU-1" Then ... or use "==" to match exactly (case sensitive) Edited January 30, 2020 by jguinch anibalgallego 1 Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF Link to comment Share on other sites More sharing options...
Malkey Posted January 30, 2020 Share Posted January 30, 2020 Instead of using StringInStr() use StringRegExp(), then the characters before and after "CFU-1" can be assessed. This ensures that exactly "CFU-1" is present in the clipboard string. Local $clipboard = "CLIP-1 CLIR-1 SOCFU-1 1-CFU-1" ; ClipGet() If StringRegExp($clipboard, "(^|\s)CFU-1(\s|$)") Then MsgBox(0, "", "Found") Else MsgBox(0, "", "Not Found") EndIf anibalgallego 1 Link to comment Share on other sites More sharing options...
jguinch Posted January 30, 2020 Share Posted January 30, 2020 1 hour ago, anibalgallego said: I need to get 'True' only when exactly "CFU-1" is in clipboard. Can you confirm what you want : clipboard contains only the string "CFU-1" (nothing else) or clipboard contains the word "CFU-1" ? anibalgallego 1 Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF Link to comment Share on other sites More sharing options...
iamtheky Posted January 31, 2020 Share Posted January 31, 2020 i think yer first instinct was correct jg msgbox(0, '' , clipget() == "CFU-1") anibalgallego 1 ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Link to comment Share on other sites More sharing options...
mikell Posted January 31, 2020 Share Posted January 31, 2020 Suggestion Local $clipboard = "CLIP-1 CLIR-1 SOCFU-1 CFU-1" ; ClipGet() MsgBox(0,"", StringRegExp($clipboard, "\bCFU-1\b") ) anibalgallego 1 Link to comment Share on other sites More sharing options...
anibalgallego Posted January 31, 2020 Author Share Posted January 31, 2020 9 hours ago, mikell said: Suggestion Local $clipboard = "CLIP-1 CLIR-1 SOCFU-1 CFU-1" ; ClipGet() MsgBox(0,"", StringRegExp($clipboard, "\bCFU-1\b") ) Excelent Thank you!!! Link to comment Share on other sites More sharing options...
Malkey Posted February 1, 2020 Share Posted February 1, 2020 Just be aware, if a non-word character (other than a space) is preceding or trailing the search string found in the $clipboard string, then using "\b" will return a false positive. Local $clipboard1 = "CLIP-1 CLIR-1 SOCFU-1 1-CFU-1" ; ClipGet() Local $clipboard2 = "CLIP-1 CLIR-1 SOCFU-1 CFU-1.1" ; ClipGet() MsgBox(0, "", StringRegExp($clipboard1, "\bCFU-1\b")) ; Returns True (a false positive) MsgBox(0, "", StringRegExp($clipboard2, "\bCFU-1\b")) ; Returns True (a false positive) ; The "-" and the "." characters are non-word characters. Link to comment Share on other sites More sharing options...
jchd Posted February 1, 2020 Share Posted February 1, 2020 Another point: \b meaning depend on what one consider what "word" means. If in UCP mode, \b expands its range to a lot more codepoints. On 1/30/2020 at 10:44 PM, anibalgallego said: I need to get 'True' only when exactly "CFU-1" is in clipboard OP's specification is inadequate. Strictly taken, "CFU-1" is exactly in "CLIP-1 CLIR-1 SOCFU-1" and that's why so many requests for RE patterns turn into long threads. This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now