正向查找后匹配所有特定字符

杰伊·布兰查德(Jay Blanchard)

我一直在努力使正则表达式整整整整整整一整天都在碰壁。在下面的字符串中.com/<first_word>,除了URL/ 之后任何斜杠,我都不会匹配每个正斜杠

$string = "http://example.com/foo/12/jacket Input/Output";
    match------------------------^--^

斜线之间的单词长度应该无关紧要。

正则表达式:(?<=.com\/\w)(\/)结果:

$string = "http://example.com/foo/12/jacket Input/Output"; // no match
$string = "http://example.com/f/12/jacket Input/Output";   
    matches--------------------^

正则表达式:(?<=\/\w)(\/)结果:

$string = "http://example.com/foo/20/jacket Input/O/utput"; // misses the /'s in the URL
    matches----------------------------------------^
$string = "http://example.com/f/2/jacket Input/O/utput"; // don't want the match between Input/Output
    matches--------------------^-^--------------^                    

因为后向可以没有修饰符,并且必须是零长度的断言,所以我想知道我是否刚刚走错了路,应该寻求其他正则表达式组合。

积极的眼光背后是这样做的正确方法吗?还是我想念除了大量咖啡以外的东西?

:标记PHP,因为正则表达式应该在工作的任何preg_*功能。

阿努巴瓦

如果要使用,preg_replace则此正则表达式应该起作用:

$re = '~(?:^.*?\.com/|(?<!^)\G)[^/\h]*\K/~';
$str = "http://example.com/foo/12/jacket Input/Output";
echo preg_replace($re, '|', $str);
//=> http://example.com/foo|12|jacket Input/Output

因此,用启动出现的后/一个|替换每个/.com

(?<!^)需要使用负向Lookbehind以避免在.com不像这样开始的情况下替换字符串/foo/bar/baz/abcd

正则演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在一个特定字符后查找所有匹配项

来自分类Dev

我如何匹配特定字符串之后的数字而无须正向查找?

来自分类Dev

删除匹配字符后的所有字符

来自分类Dev

匹配后删除所有字符

来自分类Dev

正则表达式:查找特定字符串后的所有数字

来自分类Dev

正则表达式:查找特定字符串后的所有数字

来自分类Dev

匹配Cookie字符串中的所有内容,但特定键后的值除外

来自分类Dev

在特定字符后匹配方括号中的所有内容

来自分类Dev

删除特定字符后的所有内容

来自分类Dev

正向后方匹配所有空格

来自分类Dev

正向后方匹配所有空格

来自分类Dev

查找所有在特定模式之前和之后的匹配项

来自分类Dev

递归查找与特定模式匹配的所有文件

来自分类Dev

查询以查找子字符串的所有匹配行

来自分类Dev

查找字符串中的所有匹配项

来自分类Dev

查找所有与模式匹配的字符串

来自分类Dev

特定匹配后如何删除所有空行

来自分类Dev

捕获字符串文本后的所有匹配模式

来自分类Dev

PHP-查找目录中与特定字符串匹配的所有所有文件,并将其放入数组中

来自分类Dev

查找所有包含特定字母和特殊字符的单词

来自分类Dev

如何查找包含特定字符串的所有域

来自分类Dev

批量删除特定字符后的所有内容

来自分类Dev

如何获得特定索引后的所有字符串?

来自分类Dev

如何在文件夹中查找与特定模式匹配(或不匹配)的所有文件?

来自分类Dev

将字符串与BASH匹配后在文件中进行正向和反向搜索

来自分类Dev

查找与字符串或部分字符串匹配的所有子目录

来自分类Dev

sed / awk / python替换字符串匹配后的字符之间的所有空格

来自分类Dev

RegEx匹配除换行符以外的所有内容,以正向提前

来自分类Dev

查找参考并将所有匹配的答案复制到特定列

Related 相关文章

  1. 1

    在一个特定字符后查找所有匹配项

  2. 2

    我如何匹配特定字符串之后的数字而无须正向查找?

  3. 3

    删除匹配字符后的所有字符

  4. 4

    匹配后删除所有字符

  5. 5

    正则表达式:查找特定字符串后的所有数字

  6. 6

    正则表达式:查找特定字符串后的所有数字

  7. 7

    匹配Cookie字符串中的所有内容,但特定键后的值除外

  8. 8

    在特定字符后匹配方括号中的所有内容

  9. 9

    删除特定字符后的所有内容

  10. 10

    正向后方匹配所有空格

  11. 11

    正向后方匹配所有空格

  12. 12

    查找所有在特定模式之前和之后的匹配项

  13. 13

    递归查找与特定模式匹配的所有文件

  14. 14

    查询以查找子字符串的所有匹配行

  15. 15

    查找字符串中的所有匹配项

  16. 16

    查找所有与模式匹配的字符串

  17. 17

    特定匹配后如何删除所有空行

  18. 18

    捕获字符串文本后的所有匹配模式

  19. 19

    PHP-查找目录中与特定字符串匹配的所有所有文件,并将其放入数组中

  20. 20

    查找所有包含特定字母和特殊字符的单词

  21. 21

    如何查找包含特定字符串的所有域

  22. 22

    批量删除特定字符后的所有内容

  23. 23

    如何获得特定索引后的所有字符串?

  24. 24

    如何在文件夹中查找与特定模式匹配(或不匹配)的所有文件?

  25. 25

    将字符串与BASH匹配后在文件中进行正向和反向搜索

  26. 26

    查找与字符串或部分字符串匹配的所有子目录

  27. 27

    sed / awk / python替换字符串匹配后的字符之间的所有空格

  28. 28

    RegEx匹配除换行符以外的所有内容,以正向提前

  29. 29

    查找参考并将所有匹配的答案复制到特定列

热门标签

归档