Удалить символ в середине строки - PullRequest
0 голосов
/ 26 июня 2019

Предположим, у нас есть строки 1234H242343, 6334H345345 и т. Д. Мне нужно регулярное выражение для получения строк 1234242343, 6334345345 и т. Д. Символ может различаться (не всегда H), но в этом случае символ H. Самое главное, чтобы полученная строка находилась в ОДНОМ подшаблоне с номером 1. В противном случае задание элементарно.

Я бы хотел что-то вроде этого -

(\ d + (? = H) (? <= H) \ d +)

Но этот дизайн не работает по неизвестным причинам. Хотя отдельно будет работать -

1017 *

1020 *

Вариант с незаменимой заменой также не подходит, так как символ все равно попадет в общий результат -

(\ d + (? = H) (?: H) (? <= H) \ d +)

Я думаю, что есть решение. Помогите найти)

PS: например -

<code>preg_match ('((\d+)H(\d+))', '1234H242343', $matches);
<pre>
Array
    (
        [0] => 1234H242343
        [1] => 1234 // one subpattern
        [2] => 242343 // two subpattern
    )

Мне нужно решение для результата

<code> <pre>
 Array
     (
         [0] => 1234H242343
         [1] => 1234242343 // one subpattern
     )
 

1 Ответ

0 голосов
/ 26 июня 2019

Это будет использовать регулярное выражение для удаления любых букв (a-zA-Z).

$string = '12394H2304';
$pattern = '#\D#';
$replacement = '';
$string = preg_replace($pattern, $replacement, $string);
echo $string;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...