Intereting Posts

Извлечение суммы в долларах из строки – регулярное выражение в PHP

У меня есть проблема, пытающаяся сделать это надежно для всех возможных строк.

Ниже приведены возможные значения $ str:

Существует новая целевая цена за $ 66
Существует новая целевая цена в $ 105,20
Существует новая целевая цена в $ 25,20

Я хочу, чтобы новый $ dollar_amount извлекал только сумму в долларах из приведенных выше строк. например $ dollar_amount = 66 / 105.20 / 25.20 в вышеприведенных случаях. Как я могу сделать это с помощью выражения regex в PHP? благодаря

Solutions Collecting From Web of "Извлечение суммы в долларах из строки – регулярное выражение в PHP"

preg_match('/\$([0-9]+[\.]*[0-9]*)/', $str, $match); $dollar_amount = $match[1]; 

будет, вероятно, наиболее подходящим

Попробуй это:

 if (preg_match('/(?<=\$)\d+(\.\d+)?\b/', $subject, $regs)) { #$result = $regs[0]; } 

Объяснение:

 " (?<= # Assert that the regex below can be matched, with the match ending at this position (positive lookbehind) \$ # Match the character “\$” literally ) \d # Match a single digit 0..9 + # Between one and unlimited times, as many times as possible, giving back as needed (greedy) ( # Match the regular expression below and capture its match into backreference number 1 \. # Match the character “.” literally \d # Match a single digit 0..9 + # Between one and unlimited times, as many times as possible, giving back as needed (greedy) )? # Between zero and one times, as many times as possible, giving back as needed (greedy) \b # Assert position at a word boundary " 

Вам нужно это регулярное выражение:

 /(\$([0-9\.]+))/ 

Какая функция отвечает вашим потребностям, зависит от вас.

Здесь вы можете найти функции регулярных выражений для PHP: http://www.php.net/manual/en/ref.pcre.php

пытаться

 #.+\$(.+)\s.+#