簡體   English   中英

我應該如何划分一串正則表達式?

[英]How should I delimit a string of regular expressions?

我想在mysql數據庫的文本字段中存儲一些正則表達式。 目前我最好的想法是為我的分隔符使用不規則的符號模式。 例:

$delim = '!@#$%';
$regex1 = '/^(.+)$/';
$regex2 = '/.(.+)./';
$regex3 = '/(\s+):\/\//';
$string = $regex1.$delim.$regex2.$delim.$regex3;

然后$ string將存儲在數據庫中。 要檢索我會使用類似的東西:

$array = explode($delim,$string);

我想知道的是,如果有一種更好,更准確的方法,而不僅僅是希望我的分隔符不出現在其中一個正則表達式中。

是的,更好的方式。 將它們放入數據庫時​​使用serialize()json_encode() ,並在將它們拉出時使用unserialize()json_decode()

這樣做的好處是不會以災難性的方式失敗,最終會讓你永遠地進行調試。

<?php
$string = json_encode( array( $regex1, $regex2, $regex3 ) );

// Later
$array = json_decode( $string );

為什么不使用空字節, \\0

我們使用數據庫的原因之一是,我們不必自己提出分隔符,而是讓數據庫處理數據的存儲方式。

現在,您正在創建自己的數據結構,即使您的數據庫可以單獨完成所有操作。

我想說的是:你應該將正則表達式的每個部分存儲在自己的行中,讓你的DBMS擔心其余部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM