Difference between revisions of "regexFind"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Added missing ; in examples)
m (Some wiki formatting)
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{RV|type=command
 
{{RV|type=command
  
|game1= arma3dev
+
|game1= arma3
|version1= 2.05
+
|version1= 2.06
  
|descr= Returns all all matches found with given ''pattern'' in given ''haystack'' and their offset.
+
|descr= Searches in a string with a regular expression.
 +
{{Feature|informative|See [[Arma 3: Regular Expressions]].}}
  
|gr1= Regular Expression (Regex)
+
|gr1= Strings - Regular Expression
  
|s1= haystack [[{{PAGENAMEE}}]] [pattern, startOffset]
+
|s1= haystack [[regexFind]] [pattern, startOffset]
  
 
|p1= haystack: [[String]]
 
|p1= haystack: [[String]]
  
|p2= pattern: [[String]] - Format [[:Category:Command Group: Regular Expression (Regex)|regex pattern]]
+
|p2= pattern: [[String]] - format [[Arma 3: Regular Expressions|regex pattern]]
  
|p3= offset: [[Number]] - (Optional, default: 0) The ''offset'' has to be smaller then {{ic|[[count]] haystack}} and {{ic|>{{=}} 0}}
+
|p3= offset: [[Number]] - (Optional, default: 0) has to be in range from 0 to {{ic|[[count]] ''haystack''}} (''haystack length'')
  
|r1= [[Array]] of arrays. Each array in format:
+
|r1= [[Array]] of nested arrays. Each lowest level array in format:
* 0: [[String]] - Match
+
* 0: [[String]] - match
* 1: [[Number]]  - Offset of given match relative to ''haystack'' beginning. Provided ''offset'' is ignored
+
* 1: [[Number]]  - offset of given match relative to ''haystack'' beginning (the provided ''offset'' is ignored)
  
|x1= <code>"wooKie boOkie cookie" [[{{PAGENAMEE}}]] [".ookie/gio"]; {{cc|<nowiki>[["wooKie",0],["boOkie",7],["cookie",14]]</nowiki>}}</code>
+
|x1= <sqf>"wooKie boOkie cookie" regexFind [".ookie/gio"]; // [[["wooKie", 0]], [["boOkie", 7]], [["cookie", 14]]]</sqf>
  
|x2= <code>"wooKie boOkie cookie" [[{{PAGENAMEE}}]] [".ookie/i"]; {{cc|<nowiki>[["wooKie",0]]</nowiki>}}</code>
+
|x2= <sqf>"wooKie boOkie cookie" regexFind [".ookie/i"]; // [[["wooKie",0]]]</sqf>
  
|x3= <code>"wooKie boOkie cookie" [[{{PAGENAMEE}}]] [".ookie/"]; {{cc|<nowiki>[["wooKie",0],["boOkie",7],["cookie",14]]</nowiki>}}</code>
+
|x3= <sqf>"wooKie boOkie cookie" regexFind [".ookie/"]; // [[["cookie", 14]]]</sqf>
  
|x4= Multiline example:<code>"co1kie2
+
|x4= Multiline example:
co2kie" [[{{PAGENAMEE}}]] ["^co.kie$"]; {{cc|<nowiki>[["co1kie",0],["co2kie",8]]</nowiki>}}</code>
+
<sqf>"co1kie2
 +
co2kie" regexFind ["^co.kie$"]; // [[["co2kie",9]]]</sqf>
  
|x5= <code>"I'm a cookie clicker" [[{{PAGENAMEE}}]] ["c(.*?)k(.*?)e/i"]; {{cc|<nowiki>[["cookie",6],["oo",7],["i",10]]</nowiki>}}</code>
+
|x5= <sqf>"I'm a cookie clicker" regexFind ["c(.*?)k(.*?)e/i"]; // [[["cookie",6], ["oo", 7], ["i", 10]]]</sqf>
  
|x6= <code>"I'm a cookie clicker" [[{{PAGENAMEE}}]] ["c(.*?)k(.*?)e"]; {{cc|<nowiki>[["cookie",6],["oo",7],["i",10],["clicke",13],["lic",14],["",18]]</nowiki>}}</code>
+
|x6= <sqf>"I'm a cookie clicker" regexFind ["c(.*?)k(.*?)e"]; // [[["cookie", 6], ["oo", 7], ["i", 10]], [["clicke", 13], ["lic", 14], ["", 18]]]</sqf>
  
 
|seealso= [[regexMatch]] [[regexReplace]]
 
|seealso= [[regexMatch]] [[regexReplace]]
 
}}
 
}}

Latest revision as of 19:26, 5 May 2022

Hover & click on the images for description

Description

Description:
Searches in a string with a regular expression.
Groups:
Strings - Regular Expression

Syntax

Syntax:
haystack regexFind [pattern, startOffset]
Parameters:
haystack: String
pattern: String - format regex pattern
offset: Number - (Optional, default: 0) has to be in range from 0 to count haystack (haystack length)
Return Value:
Array of nested arrays. Each lowest level array in format:
  • 0: String - match
  • 1: Number - offset of given match relative to haystack beginning (the provided offset is ignored)

Examples

Example 1:
"wooKie boOkie cookie" regexFind [".ookie/gio"]; // [[["wooKie", 0]], [["boOkie", 7]], [["cookie", 14]]]
Example 2:
"wooKie boOkie cookie" regexFind [".ookie/i"]; // [[["wooKie",0]]]
Example 3:
"wooKie boOkie cookie" regexFind [".ookie/"]; // [[["cookie", 14]]]
Example 4:
Multiline example:
"co1kie2 co2kie" regexFind ["^co.kie$"]; // [[["co2kie",9]]]
Example 5:
"I'm a cookie clicker" regexFind ["c(.*?)k(.*?)e/i"]; // [[["cookie",6], ["oo", 7], ["i", 10]]]
Example 6:
"I'm a cookie clicker" regexFind ["c(.*?)k(.*?)e"]; // [[["cookie", 6], ["oo", 7], ["i", 10]], [["clicke", 13], ["lic", 14], ["", 18]]]

Additional Information

See also:
regexMatch regexReplace

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note