Zur Navigation

Reguläre Ausdrücke online testen

1 Rudy

Hallo,

da es unter Linux kein gescheites Tool gibt, um reguläre Ausdrücke zu testen (jedenfalls habe ich keines gefunden - redet, kregexp sind für mich jedenfalls nicht benutzbar), fand ich das Regex Powertoy, und das kommt dem, was ich suchte, schon sehr nahe. Es basiert auf Java und ist flott, kann ich empfehlen.

Soweit ich allerdings bisher feststellen konnte, funktioniert es nur mit Fx/Linux ordentlich. Unter Windows und der neuesten Sun Java-Version sehe ich mit Fx keinen Cursor, mit Opera bricht der Suchtext nicht automatisch um, bei Konqueror verhält es sich seltsam. Na ja, da ich sowieso nur mit Fx surfe, ist mir dieser Umstand eigentlich egal.

Der RegexCoach wird für Linux leider nicht weiterentwickelt - und ich muss bemängeln, dass das Programm Overheads erzeugt, die es bei längeren Suchtexten unbenutzbar machen - jedes Tippen eines Charakters im Regex verursacht ärgerliche Lags (also wieder kein Grund, Windows zu booten).

Wenn jemand ein gutes Regex-Tool für Linux weiß, wäre ich sehr dankbar. Es sollte Suchergebnisse hervorheben und Ersetzungen der Backreferences möglich machen - und schnell sein ;)

08.10.2007 16:40

2 Rudy

Ein weiteres nützliches Online-Tool für reguläre Ausdrücke ist Regexp-Evaluator. Im Gegensatz zum Regex-Powertoy kann man hier den regulären Ausdruck schrittweise zusammenstellen.

14.11.2007 18:52

4 Rudy

So ein Programm habe ich auch geschrieben. Hier:

<?php
  $expression = isset($_POST['expression']) ? $_POST['expression'] : '';
  $testcontent = isset($_POST['testcontent']) ? $_POST['testcontent'] : '';
  if (get_magic_quotes_gpc()) {
    $expression = stripslashes($expression);
    $testcontent = stripslashes($testcontent);
  }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <style type="text/css">
    body, textarea { font:normal 14px Courier; }
    h1 { font-size:13px; }
  </style>
</head>
<body>
  <div id="all">
    <form method="post" action="">
    <h1>Regex</h1>
    <textarea name="expression" rows="5" cols="100"><?=htmlspecialchars($expression);?></textarea>
    <h1>Testtext</h1>
    <textarea name="testcontent" rows="10" cols="100"><?=htmlspecialchars($testcontent);?></textarea>
    <p><input type="submit" value="Testen" accesskey="T" /></p>
    <h1>Ergebnis:</h1>
      <?php
        if (isset($_POST['expression'])) {
          function displaymatch($match) {
            print_r($match);
          }
          echo '<h2>preg_match</h2>';
          $matches = array();
          preg_match($expression, $testcontent, $matches);
          echo '<pre>';
          ob_start();
          print_r($matches);
          $buffer = htmlspecialchars(ob_get_contents());
          ob_end_clean();
          echo $buffer;
          echo '</pre>';
          echo '<h2>ereg</h2>';
          $matches = array();
          ereg($expression, $testcontent, $matches);
          echo '<pre>';
					ob_start();
					print_r($matches);
					$buffer = htmlspecialchars(ob_get_contents());
					ob_end_clean();
					echo $buffer;
          echo '</pre>';
          echo '<h2>preg_replace_callback</h2>';
          echo '<pre>';
					ob_start();
          preg_replace_callback($expression, 'displaymatch', $testcontent);
					$buffer = htmlspecialchars(ob_get_contents());
					ob_end_clean();
					echo $buffer;
          echo '</pre>';
          $matches = array();
          echo '<h2>preg_match_all</h2>';
          preg_match_all($expression, $testcontent, $matches);
          echo '<pre>';
					ob_start();
          var_dump($matches);
					$buffer = htmlspecialchars(ob_get_contents());
					ob_end_clean();
					echo $buffer;
          echo '</pre>';
        }
      ?>
    </form>
  </div>
</body>
</html>

Verstehe nicht wieso man bei dem anderen Tool alles extra anhaken muss was eigentlich zum Ausdruck gehört...

Stimmt, jenes Tool richtet sich wohl eher an Anfänger.

01.02.2009 03:45

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]