[英]Remove a character in the middle of the string
假设我们有行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>
这将使用正则表达式删除所有字母 (a-zA-Z)。
$string = '12394H2304';
$pattern = '#\D#';
$replacement = '';
$string = preg_replace($pattern, $replacement, $string);
echo $string;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.