假设我们有1234H242343
,6334H345345
等行,我需要一个正则表达式来获取字符串1234242343
,6334345345
等。字符可能有所不同( (并非总是H
),而是在这种情况下为H
字符。最重要的是,结果字符串应位于数字为1
的ONE子模式中。否则,该任务是基本任务。
我想要这样的东西-
(\ d + (? = H) (? <= H) \ d +)
但是由于未知原因,该设计无法正常工作。尽管可以单独使用-
(\ d + (? = H))
((? <= H) \ d +)
具有非捕捉替换的变体也不合适,因为该符号仍将到达常规结果-
(\ d + (? = H) (?: H) (? <= H) \ d +)
我认为有解决方案。帮我找到)
PS:例如-
preg_match ('((\d+)H(\d+))', '1234H242343', $matches);
<pre>
Array
(
[0] => 1234H242343
[1] => 1234 // one subpattern
[2] => 242343 // two subpattern
)
</pre>
我需要一个解决方案
<pre>
Array
(
[0] => 1234H242343
[1] => 1234242343 // one subpattern
)
</pre>
答案 0 :(得分:0)
这将使用正则表达式删除所有字母(a-zA-Z)。
$string = '12394H2304';
$pattern = '#\D#';
$replacement = '';
$string = preg_replace($pattern, $replacement, $string);
echo $string;