【问题标题】:With a regular expression, match letters and numbers but not whitespaces使用正则表达式,匹配字母和数字,但不匹配空格
【发布时间】:2015-06-09 19:29:52
【问题描述】:

这是一个初学者的问题,但我才刚刚开始,需要一些帮助。

我有这个字符串:

dog and cat

使用 PCRE-Regexes,我想在没有空格的情况下匹配它并将其捕获为一个组,捕获dogandcatas $1。

我已经走到这一步了(\w*)。将括号放在捕获之外,然后读取任何字母、数字或下划线。这返回 dog。在这里看到它: https://regex101.com/r/pL1bY1/3

现在我想跳过相邻的空格并继续使用and。我该怎么做?

【问题讨论】:

  • 只启用全局标志regex101.com/r/pL1bY1/5。而你想要的输出不能单独通过正则表达式来实现。您需要一些语言工具来删除第一个组索引中存在的空间。
  • 您也可以将\s+ 替换为空字符串以消除所有空格。
  • /\s+/ 替换为//,然后匹配/\w+/
  • 如果您是初学者,为什么要这么具体 I want to match this without the whitespaces and capture it as a group, capturingdogandcatas $1. ?正则表达式从左到右匹配,当您在缓冲区中捕获时,内容是连续的,来自dog...cat。如果不包括空格,你怎么能做到这一点?
  • @LucasTrzesniewski 很好,但是如何仅使用 PCRE 正则表达式替换字符?

标签: regex pcre splunk


【解决方案1】:

在 perl 中你可以直接替换:

my $string = 'dog and cat';

$string =~ s/ //g;

print "$string\n";

【讨论】:

  • 谢谢,但我没有可用的 Perl,只有 PCRE-Regexes。
  • @jans,PCRE 的意思是“Perl 兼容的正则表达式”。您需要添加您正在使用的实际语言或工具的标签。许多语言支持(很大一部分)PCRE。
  • @BartKiers 我想在 Splunk transforms.conf 文件中应用它。
猜你喜欢
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
  • 2019-10-14
  • 2011-02-11
  • 2019-08-21
  • 1970-01-01
  • 2011-04-06
相关资源
最近更新 更多