1

次の値を考慮してください。

$format = ',0';        // Thousand separators ON, no decimal places 
$format = '0';         // Thousand separators OFF, no decimal places
$format = '0.000';     // Thousand separators OFF, 3 decimal places
$format = ',0.0';      // Thousand separators ON, 1 decimal place
  1. 最初に行うことは、$format接頭辞が「,」であるかどうかを確認することです。これは、桁区切り記号が有効になっていることを示しています。
  2. 次に、最初のゼロの後にゼロがいくつあるかを確認する必要があります。たとえば、以下は小数点以下 2 桁の「0.00」などになります。

なんとか式を一致させることができました (これはそれほど難しいことではありませんでした) が、個々の一致を抽出して、「,」が見つかったかどうか、ゼロがいくつあるかなどを知ることができるようにしたいと考えています。 ..

これは私がこれまでに持っているものです:

preg_match_all('/^\,?[0]?[\.]?([0])+?$/',$value['Field_Format'],$matches);
4

1 に答える 1

1

別の正規表現を使用して、サブ結果を名前付きグループに入れます。

if (preg_match(
    '/^
    (?P<thousands>,)? # Optional thousands separator
    0                 # Mandatory 0
    (?:               # Optional group:
     (?P<decimal>\.)  # Decimal separator
     (?P<digits>0+)   # followed by one or more zeroes
    )?                # (optional)
    $                 # End of string/x', 
    $subject, $regs)) {
    $thousands = $regs['thousands'];
    $decimal = $regs['decimal'];
    $digits = $regs['digits'];
}
于 2013-05-07T10:46:47.123 に答える