Revision Difference
string.find#529707
<function name="find" parent="string" type="libraryfunc">
<description>Attempts to find the specified substring in a string, uses <page>Patterns</page> by default.</description>⤶
<description>Attempts to find the specified substring in a string.⤶
⤶
<warning>This function uses <page text="Lua Patterns">Patterns</page> by default.</warning>⤶
</description>⤶
<realm>Shared and Menu</realm>
<args>
<arg name="haystack" type="string">The string to search in.</arg>
<arg name="needle" type="string">The string to find, can contain patterns if enabled.</arg>
<arg name="startPos" type="number" default="1">The position to start the search from, can be negative start position will be relative to the end position.</arg>
<arg name="noPatterns" type="boolean" default="false">Disable patterns.</arg>
</args>
<rets>
<ret name="" type="number">Starting position of the found text, or nil if the text wasn't found</ret>
<ret name="" type="number">Ending position of found text, or nil if the text wasn't found</ret>
<ret name="" type="string">Matched text for each group if patterns are enabled and used, or nil if the text wasn't found</ret>
</rets>
</function>
<example>
<description>Change the word "heck" to "****" in chat messages</description>
<code>
hook.Add( "PlayerSay", "NoHeckHere", function( ply, text )
local heckStart, heckEnd = string.find( text:lower(), "heck" )
if heckStart then
local civilText = string.sub( text, 1, heckStart - 1 ) .. "****" .. string.sub( text, heckEnd + 1 )
return civilText
end
end )
</code>
</example>