0
什麼是c#.net相當於php的preg_replace函數?.net等效於php preg_replace
PHP代碼是這樣的:
const ALLOW_VALUES = '[^a-z0-9àáâäèéêëìíîïòóôöùûŵýÿyÁÂÄÈÉÊËÌÎÏÒÓÔÖÙÛÜŴYÝ]';
public function streetTownHash($data, $hashCheck = false, $updateRecord = false)
{
foreach($data as $key=>$value){
try{
$value = mb_convert_case($value, MB_CASE_LOWER, "UTF-8");
} catch(Exception $e) {
echo "Requires extension=php_mbstring.dll enabled ! - $e";
}
$valueConcat .= preg_replace('/'.self::ALLOW_VALUES.'/','',$value); # Remove punctuation etc
}
$streetTownHash = sha1($valueConcat);
....
編輯:現在像這樣。
private readonly SHA1 hash = SHA1.Create();
private readonly Regex PunctuationStripper = new Regex(@"[^a-z0-9àáâäèéêëìíîïòóôöùûŵýÿyÁÂÄÈÉÊËÌÎÏÒÓÔÖÙÛÜŴYÝ]", RegexOptions.IgnoreCase);
public string HashString(string value)
{
value = value.ToLower();
value = PunctuationStripper.Replace(value, string.Empty);
var bytes = ASCIIEncoding.UTF8.GetBytes(value);
var hashed = hash.ComputeHash(bytes);
return ASCIIEncoding.UTF8.GetString(hashed);
}
編輯:
請問正則表達式也需要改變?
你能描述的preg_replace的功能是什麼?我不知道PHP。 – 2010-03-12 14:33:01
在.NET中,你應該使用'\ p {L}'而不是'àáâäèé...'.... – kennytm 2010-03-12 14:37:51
不完全確定..模糊頭日..正則表達式後綴我想象http://php.net/manual/en /function.preg-replace.php – Hath 2010-03-12 14:37:58