当前位置: 首页 > 知识库问答 >
问题:

正则表达式删除符号之间的空格

诸葛绍元
2023-03-14

我想删除前导

preg_replace('!^>(?: +)>!m', '>>', $text);

这对我来说是行不通的

> > > Hello

我想表现得像这样:

> >> Hello
> >    > Hello
>>Hello >  >
>>> Hello
> >>     Hello

应该成为

>>> Hello
>>> Hello
>> Hello >  >
>>> Hello
>>>     Hello

但是第二个

见:https://regex101.com/r/4uiyWG/1


共有1个答案

萧心水
2023-03-14

如果对单独的字符串执行替换,请使用

$s = preg_replace('~\G\h*>~', '>', $s);

查看正则表达式演示

\G运算符匹配字符串的开头或前面成功匹配的结尾。\h*将匹配零个或多个水平空格符号。

如果您想去掉前导

$s = preg_replace('~(?:\G|^)\h*>~m', '>', $s)

看到这个正则表达式演示了吗

这里,(?:\G | ^)交替是必要的,因为\G(即使使用/m修饰符)也不会匹配行首)。

 类似资料:
  • 问题内容: 我需要使用正则表达式在单词的 开头 和 结尾 处删除标点符号。似乎正则表达式将是最好的选择。我不想从“ you’re”之类的词中删除标点符号,这就是为什么我不使用.replace()的原因。 问题答案: 您不需要正则表达式即可执行此任务。使用有:

  • 问题内容: 我一直试图在Java中编写一个正则表达式以删除下面括号中的所有内容,同时保留其他所有内容。 注意,括号可以嵌套,这就是为什么我的模式失败的原因 。有人能帮我吗?下面我试过了: 但这打印: d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Nf3 OO 6. Be2 e5 7. dxe5 dxe5 8. Qxd8 Rxd8 9. Bg5 Nbd7 10. OO

  • 我想要一个防止空白的正则表达式,只允许带标点符号的字母和数字(西班牙语)。下面的正则表达式工作得很好,但是它不允许标点符号。 例如,当使用这个正则表达式时,“Hola como estas”是可以的,但是“Hola,como estas?”不匹配。 如何将其调整为标点符号?

  • 问题内容: 我正在用Java编写程序以接受查询。如果我有类似的查询 …我可以使用什么正则表达式将其转换为: …要么: 实际上,我想知道如何编写正则表达式以仅删除方括号内的空格。 问题答案: 假设括号正确平衡且没有嵌套括号,则以下内容将删除括号内(且仅在括号内)的所有空格: 它转变 进入 说明:

  • 我有一个字符串,其中有多个逗号和空格作为单词之间的分隔符。以下是一些示例: 我想使用正则表达式将上述3个示例中的任何一个转换为“word1, word2, word3”-(注意:结果中最后一个单词后没有逗号)。 我使用了以下代码: 我得到的输出是“word1,word2,word3,”。而实际上我想要“word1,word2,word3”。单词3后没有逗号。 我应该使用什么样的正则表达式和re方法

  • 我有以下字符串: 如果您将它格式化得很好,您将会看到类似这样的内容: 所以我有一堆锚标签,它们之间有断点。在每个锚的文本中,我想删除管道字符和文件类型: 狗-00.jpg|图像/JPEG 变成 dog-00.jpg 正则表达式也应该适用于所有未来的文件类型,例如: dog-01.docx|应用/vnd.openxmlformats-officedocument.wordprocessingml.d