繁体   English   中英

删除字符串中间的字符

[英]Remove a character in the middle of the string

假设我们有行1234H2423436334H345345 ,等我需要一个正则表达式来获得字符串12342423436334345345等字符可能会有所不同(并不总是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>

这将使用正则表达式删除所有字母 (a-zA-Z)。

$string = '12394H2304';
$pattern = '#\D#';
$replacement = '';
$string = preg_replace($pattern, $replacement, $string);
echo $string;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM