Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2013, 20:19
zant95
Invitado
 
Mensajes: n/a
Puntos:
Duda con expresiones regulares

Hola a todos, recientemente estaba haciendo un plugin para Bukkit y me ha surgido una duda (no es necesario conocer Bukkit para contestar a esta cuestión). Verán, actualmente tengo esta función:

Código:
  public String variables(Player player, String text) {
    Calendar calendar = Calendar.getInstance();
    return text.replace("$gamemode", player.getGameMode().name())
          .replace("$food", Integer.toString(player.getFoodLevel()))
          .replace("$health", Integer.toString(player.getHealth()))
          .replace("$exp", Integer.toString(player.getTotalExperience()))
          .replace("$world", player.getWorld().getName())
          .replace("$hand", Integer.toString(player.getItemInHand().getTypeId()))
          .replace("$amount", Integer.toString(player.getItemInHand().getAmount()))
          .replace("$mctime", Long.toString(player.getWorld().getTime()))
          .replace("$hour", Integer.toString(calendar.get(Calendar.HOUR_OF_DAY)))
          .replace("$min", Integer.toString(calendar.get(Calendar.MINUTE)))
          .replace("$sec", Integer.toString(calendar.get(Calendar.SECOND)))
          .replace("$year", Integer.toString(calendar.get(Calendar.YEAR)))
          .replace("$month", Integer.toString(calendar.get(Calendar.MONTH)+1))
          .replace("$day", Integer.toString(calendar.get(Calendar.DAY_OF_MONTH)));
  }
Con esto lo que hago es reemplazar una string con variables por los valores de esas variables. La string tendría un formato como este "$hand==32". Como ven el en código obtengo el valor de "$hand" usando el parámetro "player".
Lo que necesito ahora es no usar la variable "player" como parámetro de la función, sino que quiero usar el siguiente formato "$hand(player)==32".
Imagino que la solución a esto es mediante el uso de expresiones regulares, pero ahora mismo no se me ocurre la manera más eficiente de hacerlo, así que antes de comerme la cabeza y hacer algo demasiado complejo os pregunto a vosotros de qué manera haríais esto.

Si no me he explicado correctamente decídmelo y entraré más en detalles. Saludos!