<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sin Ideas &#187; Expresiones Regulares</title>
	<atom:link href="http://osiux.ws/etiqueta/expresiones-regulares/feed/" rel="self" type="application/rss+xml" />
	<link>http://osiux.ws</link>
	<description></description>
	<lastBuildDate>Sun, 01 Jan 2012 20:01:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Filtro de palabras en PHP</title>
		<link>http://osiux.ws/2008/04/filtro-de-palabras-en-php/</link>
		<comments>http://osiux.ws/2008/04/filtro-de-palabras-en-php/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 21:05:32 +0000</pubDate>
		<dc:creator>oso96_2000</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Expresiones Regulares]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://osiux.ws/?p=33</guid>
		<description><![CDATA[A raíz de un tema que vi en un foro, se me ocurrío hacer una pequeña función en PHP para censurar ciertas palabras en un texto. En realidad es bastante simple lo que hace, y gracias al poder de las expresiones regulares tiene muchas posibilidades. Aqui dejo la función y después paso a comentarla. Ahora [...]]]></description>
			<content:encoded><![CDATA[<p>A raíz de un tema que vi en un foro, se me ocurrío hacer una pequeña función en PHP para censurar ciertas palabras en un texto. En realidad es bastante simple lo que hace, y gracias al poder de las <a title="expresiones regulares" href="http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular" target="_blank">expresiones regulares</a> tiene muchas posibilidades. Aqui dejo la función y después paso a comentarla.</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
function filtrado($texto, $reemplazo = false) {
$filtradas = 'p?uta, mierda, pendej[ao]s?';

$f = explode(',', $filtradas);
$f = array_map('trim', $f);
$filtro = implode('|', $f);

return ($reemplazo) ? preg_replace(&quot;#$filtro#i&quot;, $reemplazo, $texto) : preg_match(&quot;#$filtro#i&quot;, $texto) ;
}
?&gt;</pre>
<p>Ahora la explicación:</p>
<ul>
<li><strong>Línea 3:</strong> Aquí se definen las palabras a buscar separadas por coma. Se puede hacer uso de comodines. Por ejemplo, &#8220;<em>p?uta</em>&#8221; censura &#8220;<em>puta</em>&#8221; y &#8220;<em>uta</em>&#8220;; &#8220;<em>pendej[ao]s?</em>&#8221; censura &#8220;<em>pendeja</em>&#8220;, &#8220;<em>pendejo</em>&#8220;, &#8220;<em>pendejos</em>&#8220;, &#8220;<em>pendejas</em>&#8220;.</li>
<li><strong>Línea 5:</strong> Dividimos las palabras en un arreglo.</li>
<li><strong>Línea 6:</strong> Limpiamos los posibles espacios en blanco alrededor de la palabra.</li>
<li><strong>Línea 7:</strong> Las unimos con el <a target="_blank" href="http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular#La_barra_.22.7C.22">caracter |</a>.</li>
<li><strong>Línea 9:</strong>  El segundo parametro es opcional. Si se pone, se retorna la cadena del primer parametro con las palabras prohibidas reemplazadas por el texto que se haya pasado como segundo parametro. Si no se especifica el segundo parametro, entonces la funcion retorna verdadero en caso de que se haya encontrado alguna palabra en el texto o falso en caso de que la cadena este limpia.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://osiux.ws/2008/04/filtro-de-palabras-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cosas del mIRC Scripting</title>
		<link>http://osiux.ws/2008/04/cosas-del-mirc-scripting/</link>
		<comments>http://osiux.ws/2008/04/cosas-del-mirc-scripting/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 06:58:51 +0000</pubDate>
		<dc:creator>oso96_2000</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Expresiones Regulares]]></category>
		<category><![CDATA[Mirc Scripting]]></category>

		<guid isPermaLink="false">http://osiux.ws/?p=32</guid>
		<description><![CDATA[Mas que nada como recordatorio: Acciones a relizar cuando escribimos algo. Si el texto que escribimos comienza con + o -, seguido de una letra que sea &#8216;qaohvmb&#8217;, le damos el status correspondiente al nick. Ej: +o oso96_2000 Realiza un kick al azar de entre los usuarios del canal (uno mismo incluido).]]></description>
			<content:encoded><![CDATA[<p>Mas que nada como recordatorio:</p>
<pre class="brush: php; title: ; notranslate">on 1:INPUT:*: {
if ($regex(,$1,^([+-][qaohvmb]+)+$)) { mode # $1- | halt }
if ($1 == .kr) { msg # Haciendo kick al azar~ | kick # $nick(#,$rand(1,$nick(#,0))) Kick no Jutsu~ | halt }
}</pre>
<ol>
<li>Acciones a relizar cuando escribimos algo.</li>
<li>Si el texto que escribimos comienza con + o -, seguido de una letra que sea &#8216;qaohvmb&#8217;, le damos el status correspondiente al nick. Ej: +o oso96_2000</li>
<li>Realiza un kick al azar de entre los usuarios del canal (uno mismo incluido).</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://osiux.ws/2008/04/cosas-del-mirc-scripting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simplificar código</title>
		<link>http://osiux.ws/2006/03/simplificar-codigo/</link>
		<comments>http://osiux.ws/2006/03/simplificar-codigo/#comments</comments>
		<pubDate>Wed, 22 Mar 2006 17:48:08 +0000</pubDate>
		<dc:creator>oso96_2000</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Expresiones Regulares]]></category>
		<category><![CDATA[Mirc Scripting]]></category>

		<guid isPermaLink="false">http://osiux.ws/?p=24</guid>
		<description><![CDATA[Me encanta programar, es algo que me divierte, pero ayer me di cuenta que me gusta mas cuando aprendo algo nuevo y cuando es una especie de reto lo que debo hacer. Ayer estaba como siempre en el mIRC, probando unas cosas en Scripting, tenia esto: Lo que hace es que al escribir yo mismo [...]]]></description>
			<content:encoded><![CDATA[<p>Me encanta programar, es algo que me divierte, pero ayer me di cuenta que me gusta mas cuando aprendo algo nuevo y cuando es una especie de reto lo que debo hacer. Ayer estaba como siempre en el mIRC, probando unas cosas en Scripting, tenia esto:</p>
<pre class="brush: php; title: ; notranslate">on 1:INPUT:#{
	if($1 == +a) { mode # +a $2 }
	if($1 == -a) { mode # -a $2 }
	if($1 == +o) { mode # +o $2 }
	if($1 == -o) { mode # -o $2 }
	if($1 == +h) { mode # +h $2 }
	if($1 == -h) { mode # -h $2 }
	if($1 == +v) { mode # +v $2 }
	if($1 == -v) { mode # -v $2 }
}</pre>
<p>Lo que hace es que al escribir yo mismo +o nick, le daría status de operador al nick mencionado. Pero entonces, despues de una pequeña charla, resulto que un amigo tenia en una sola linea lo necesario para hacer lo que yo hacia.. y la linea tenia 100 caracteres aproximadamente.. y como no quiso decirme como lo tenia, fue mi turno de ponerme a investigar y tratar de realizarla en menos caracteres.</p>
<p>Después de un rato pensando e intentando cosas, deje mi función en aproximadamente 120 caracteres, lo que aun hacia que perdiera el pequeño reto, ya que la de el tenia aun menos.. como parte de eso, habíamos quedado que el que tuviera mas caracteres mostraría su código, así que me toco hacerlo.. cuando lo vio, dijo que podía hacer su código aun mas corto.. y después de un rato dijo que ahora eran solo alrededor de 85 caracteres.. entonces yo seguí pensando como hacerlo, pero en lo mas que pude dejarlo fueron 90 caracteres u_u..</p>
<p>Al fin, me mostró como tenia su código, eran ya como 70-80 caracteres.. y de ahí, discutiendo sobre algunas cosas fuimos reduciendo el código hasta que quedo en esto:</p>
<pre class="brush: php; title: ; notranslate">on 1:INPUT:#:{if ($regex(,$1,^[-+][vhoa])){ mode # $1 $2- } }</pre>
<p>¡61 caracteres! Cumple exactamente la misma función (y hasta mejor) que el código que tenia al principio, requiere un poco mas de comprensión, pero se simplifica mucho lo que se hace. Francamente, me encanto hacer eso.. me distraje de un ensayo que tenia que hacer (que termine ya muy noche, por lo que tengo sueño u-u) pero valió la pena, y aun creemos que podemos disminuirlo un poco mas ese código..</p>
<p>En fin, solo quería escribir esto xD.. ya que fue algo que me pareció por demás interesante, y chance a alguien le llegue a servir algún día o.O&#8230; y si puedes disminuir el código, déjalo en los comentarios xD</p>
<p><strong>Edito:</strong> Mmh.. nueva linea.. 2 caracteres mas pero la expresión regular esta mejorada para corregir algunos problemas al escribir ciertas cosas =P</p>
<pre class="brush: php; title: ; notranslate">on 1:INPUT:#:{if ($regex(,$1,^([+-][aohv]+)+$)){ mode # $1- } }</pre>
]]></content:encoded>
			<wfw:commentRss>http://osiux.ws/2006/03/simplificar-codigo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Object Caching 478/489 objects using memcached

Served from: osiux.ws @ 2012-02-05 14:06:42 -->
