Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式:如何在非英语字符串和非英语字符串之间替换符号_Php_Regex - Fatal编程技术网

Php 正则表达式:如何在非英语字符串和非英语字符串之间替换符号

Php 正则表达式:如何在非英语字符串和非英语字符串之间替换符号,php,regex,Php,Regex,我有一个字符串,其中包含英语和非英语字符,它们之间都包含下划线符号 我只想删除非英语字符串中的下划线,而只保留英语字符之间的下划线 示例:你好,这是我,我是 谢谢 这个preg_替换可能会起作用: preg_replace('/(?<=[^\x00-\x80])_(?=[^\x00-\x80])/', '', $str); preg_replace('/(?这应该可以满足您的需要: preg_replace('/(?<=\p{Arabic})_(?=\p{Arabic})/', '

我有一个字符串,其中包含英语和非英语字符,它们之间都包含
下划线符号

我只想删除非英语字符串中的下划线,而只保留英语字符之间的下划线

示例:你好,这是我,我是


谢谢

这个preg_替换可能会起作用:

preg_replace('/(?<=[^\x00-\x80])_(?=[^\x00-\x80])/', '', $str);

preg_replace('/(?这应该可以满足您的需要:

preg_replace('/(?<=\p{Arabic})_(?=\p{Arabic})/', '', $s)
preg_replace('/(?您可以尝试以下方法:

<meta charset="UTF-8"/>
<pre><?php

$subject = "Hello_this is me , مرحبا_اناهنا";

$pattern = '~\p{Arabic}\K_(?=\p{Arabic})~u';

echo $subject . '<br/>' . preg_replace($pattern, ' ', $subject);


您尝试过什么?下划线旁边有空格或字符串结尾?或者数字?或者旁边总是有两个ASCII或两个非ASCII字符?我一回来就尝试。谢谢IDN不起作用。您能解决这个问题吗?/[\uw]*/我正在尝试删除字母之间除了英语和下划线以外的所有内容。
示例:你好,这是我,我想我错了!你怎么能删除所有非英语字母及其下划线?我不清楚你的评论。你知道吗st想删除非英语字母之间的下划线,对吗?是的,但还有一个问题,如果我也想删除非英语字母,将如何删除?如果要删除所有非英语字母,请使用:
preg\u replace('/[^\x00-\x80]+/','$str);