用于选择中间字用空格隔开的Regex

我想选择以”开头的单词,在行内的某个地方。

例子

30 8 * * * /root/something > /dev/null 2>&1
30 8 * * * usr/bin/php /home/php/script/run.php

我想配合

/root/something
/home/php/script/run.php

我的regex根本不工作(使用Ansible)。

regex_findall('\\s(/.*)')

并给出这样的输出

/root/something > /dev/null 2>&1
/home/php/script/run.php"

解决方案:

你可以使用

r'\s(/\S+).*'

搜索引擎演示

它将匹配一个空格(\s),然后将捕获 / 然后是任何1个以上的非空格字符(\S+)进入第1组,然后将其余的线路(用 .*).

另一个想法:匹配序列 / 然后是1个以上的字符,除了 / 如果不以 /dev/null:

r'(?<!\S)(?!/dev/null)(?:/[^/\s]+)+'

这将匹配

  • (?<!\S) – 空格或字符串的开头应该紧靠左边出现。
  • (?!/dev/null) – 没有 /dev/null 允许紧靠当前位置的右边。
  • (?:/[^/\s]+)+ – 出现1次或以上的
    • / – a / 烧焦
    • [^/\s]+ – 1+ 字符以外的字符 / 和whitespace。

这个regex演示.

给TA打赏
共{{data.count}}人
人已打赏
解决方案

访问缓冲区总是返回0,尽管在Atmel Studio调试器中可以看到实际值

2022-5-11 2:00:26

解决方案

打开Fancybox时,Fancybox Base64String图片消失了

2022-5-11 2:00:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索