正则表达式以匹配换行符和括号之间的制表符

名字

我正在尝试从这样的数据中删除括号内内容的换行符和制表符:

settings:a [
    a:[
        a:a
        b:b
    ]
    b:[
        a:a
        b:b
    ]
]

settings:b [
    a:[
        a:a
        b:b
    ]
]

这样就变成了:

settings:a [ a:[ a:a b:b ] b:[ a:a b:b ] ] 
settings:b [ a:[ a:a b:b ] ]

我正在使用的正则表达式在\n(?=[^\[\]]*\])某种程度上可以工作,但我没有得到如上所述的输出。你能帮我吗?

正则表达式示例

维克多·史翠比维

您可以将以下正则表达式与preg_replace(使用一次正则表达式)一起使用:

[\t\n]+(?=[^][]*(?:(\[(?:[^][]++|(?1))*])[^][]*)*])

请参阅regex演示细节:

  • [\t\n]+-一个或多个制表符或换行符(\s如果需要匹配任何空格,则使用,u如果需要处理Unicode文本,则还添加修饰符标志)
  • (?=[^][]*(?:(\[(?:[^][]++|(?1))*])[^][]*)*]) -正向前瞻,要求其模式立即匹配当前位置的右侧:
    • [^][]*-除[以外的零个或多个字符]
    • (?:(\[(?:[^][]++|(?1))*])[^][]*)* -零次或更多次
      • (\[(?:[^][]++|(?1))*])-第1组(技术,必要的递归工作):一[,那么任何配对之间嵌套子[],然后]
      • [^][]*-除[以外的零个或多个字符]
    • ]-一个]字符

参见PHP演示

$re = '/[\t\n]+(?=[^][]*(?:(\[(?:[^][]++|(?1))*])[^][]*)*])/';
$str = "settings:a [\n  a:[\n       a:a\n       b:b\n   ]\n b:[\n       a:a\n       b:b\n   ]\n]\n\nsettings:b [\n  a:[\n   \n\na:a\n       b:b\n   ]\n]";
echo preg_replace($re, ' ', $str);
// => settings:a [ a:[ a:a b:b ] b:[ a:a b:b ] ]
//    settings:b [ a:[ a:a b:b ] ]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javascript正则表达式中回车符,换行符和多个空格的匹配

来自分类Dev

正则表达式匹配星号与换行符之间的字符串

来自分类Dev

Python正则表达式-使用许多匹配项来匹配换行符

来自分类Dev

正则表达式换行符

来自分类Dev

正则表达式可匹配关键字之间的所有内容(包括换行符)

来自分类Dev

如何从包含空格,换行符和制表符跳转的字符串末尾替换<p> <br> </ p>?正则表达式?

来自分类Dev

一个或多个空格,制表符或换行符的正则表达式

来自分类Dev

正则表达式与换行符不匹配

来自分类Dev

正则表达式替换Windows换行符

来自分类Dev

C#正则表达式匹配指定子字符串旁边的任何字符,但忽略换行符/制表符

来自分类Dev

如何在括号内(可能是嵌套的)内匹配换行符?(正则表达式)

来自分类Dev

正则表达式换行符遇到StackOverflowError

来自分类Dev

用于换行符解析的正则表达式

来自分类Dev

正则表达式可匹配从换行符到括号以及搜索词的所有内容

来自分类Dev

正则表达式可打印的ASCII加上换行符和回车符

来自分类Dev

正则表达式以匹配单个换行符。正则表达式匹配双换行

来自分类Dev

正则表达式包括换行符

来自分类Dev

正则表达式-匹配括号中的所有内容,包括换行符

来自分类Dev

如何使用正则表达式验证动态制表符和换行符分隔的字符串?

来自分类Dev

如何在正则表达式中获取制表符匹配

来自分类Dev

正则表达式匹配之前删除换行符\换行符

来自分类Dev

正则表达式:匹配字符或换行符之间的所有内容

来自分类Dev

在C ++中使用正则表达式读取空格,换行和制表符

来自分类Dev

Java正则表达式匹配无回车符,后跟换行符

来自分类Dev

如何使用正则表达式和Sublime Text替换制表符包裹的文本?

来自分类Dev

正则表达式在每个括号后添加新的换行符

来自分类Dev

正则表达式以匹配由空格和/或换行符分隔的单词

来自分类Dev

制表符和字符分隔的 Python 正则表达式

来自分类Dev

在python中使用正则表达式获取换行符和制表符组的完整匹配

Related 相关文章

  1. 1

    javascript正则表达式中回车符,换行符和多个空格的匹配

  2. 2

    正则表达式匹配星号与换行符之间的字符串

  3. 3

    Python正则表达式-使用许多匹配项来匹配换行符

  4. 4

    正则表达式换行符

  5. 5

    正则表达式可匹配关键字之间的所有内容(包括换行符)

  6. 6

    如何从包含空格,换行符和制表符跳转的字符串末尾替换<p> <br> </ p>?正则表达式?

  7. 7

    一个或多个空格,制表符或换行符的正则表达式

  8. 8

    正则表达式与换行符不匹配

  9. 9

    正则表达式替换Windows换行符

  10. 10

    C#正则表达式匹配指定子字符串旁边的任何字符,但忽略换行符/制表符

  11. 11

    如何在括号内(可能是嵌套的)内匹配换行符?(正则表达式)

  12. 12

    正则表达式换行符遇到StackOverflowError

  13. 13

    用于换行符解析的正则表达式

  14. 14

    正则表达式可匹配从换行符到括号以及搜索词的所有内容

  15. 15

    正则表达式可打印的ASCII加上换行符和回车符

  16. 16

    正则表达式以匹配单个换行符。正则表达式匹配双换行

  17. 17

    正则表达式包括换行符

  18. 18

    正则表达式-匹配括号中的所有内容,包括换行符

  19. 19

    如何使用正则表达式验证动态制表符和换行符分隔的字符串?

  20. 20

    如何在正则表达式中获取制表符匹配

  21. 21

    正则表达式匹配之前删除换行符\换行符

  22. 22

    正则表达式:匹配字符或换行符之间的所有内容

  23. 23

    在C ++中使用正则表达式读取空格,换行和制表符

  24. 24

    Java正则表达式匹配无回车符,后跟换行符

  25. 25

    如何使用正则表达式和Sublime Text替换制表符包裹的文本?

  26. 26

    正则表达式在每个括号后添加新的换行符

  27. 27

    正则表达式以匹配由空格和/或换行符分隔的单词

  28. 28

    制表符和字符分隔的 Python 正则表达式

  29. 29

    在python中使用正则表达式获取换行符和制表符组的完整匹配

热门标签

归档