精华内容
下载资源
问答
  • 我需要删除波形括号中包含的所有数据.像这样:Hello {{world of the {{ crazy}} {{need {{ be}}}} sea }} there.变为:Hello there.这是我第一次尝试(我知道这很可怕):while 1:firstStartBracket = text.find('{{')...

    我在这个问题上有一些困难.我需要删除波形括号中包含的所有数据.

    像这样:

    Hello {{world of the {{ crazy}} {{need {{ be}}}} sea }} there.

    变为:

    Hello there.

    这是我第一次尝试(我知道这很可怕):

    while 1:

    firstStartBracket = text.find('{{')

    if (firstStartBracket == -1):

    break;

    firstEndBracket = text.find('}}')

    if (firstEndBracket == -1):

    break;

    secondStartBracket = text.find('{{',firstStartBracket+2);

    lastEndBracket = firstEndBracket;

    if (secondStartBracket == -1 or secondStartBracket > firstEndBracket):

    text = text[:firstStartBracket] + text[lastEndBracket+2:];

    continue;

    innerBrackets = 2;

    position = secondStartBracket;

    while innerBrackets:

    print innerBrackets;

    #everytime we find a next start bracket before the ending add 1 to inner brackets else remove 1

    nextEndBracket = text.find('}}',position+2);

    nextStartBracket = text.find('{{',position+2);

    if (nextStartBracket != -1 and nextStartBracket < nextEndBracket):

    innerBrackets += 1;

    position = nextStartBracket;

    # print text[position-2:position+4];

    else:

    innerBrackets -= 1;

    position = nextEndBracket;

    # print text[position-2:position+4];

    # print nextStartBracket

    # print lastEndBracket

    lastEndBracket = nextEndBracket;

    print 'pos',position;

    text = text[:firstStartBracket] + text[lastEndBracket+2:];

    它似乎工作,但内存不足很快.有没有更好的方式来做(希望与正则表达式)?

    编辑:我不清楚,所以我再举一个例子.我需要允许多个顶级括号.

    像这样:

    Hello {{world of the {{ crazy}} {{need {{ be}}}} sea }} there {{my }} friend.

    变为:

    Hello there friend.

    展开全文
  • 最近在学习Shell脚本编程时,发现别人程序的 if-then代码块 中if的条件语句中存在 双括号(())、双中括号[[]] 的使用,因而查阅了相关资料,同时也看到了一篇不错的博文,对Shell脚本中括号使用作出了总结,特此...

    • 前言

      最近在学习Shell脚本编程时,发现别人程序的 if-then代码块 中if的条件语句中存在 双括号(())、双中括号[[]] 的使用,因而查阅了相关资料,同时也看到了一篇不错的博文,对Shell脚本中括号的使用作出了总结,特此记录和分享

    • 1. 括号( )

    • 括号一般在命令替换时与美元符号$配合使用,用于获取括号内命令的输出,如

      #!/bin/bash
      # 输出今年的年份
      year=$(date +%Y)
      echo "This year is $year"
      

    • 2. 方括号[ ]

    • Shell中的方括号一般有两种使用场景,一种是和美元符号$搭配用于Shell中整型数据运算;另一种是单独使用,作为test命令的简写形式

    • 2.1 搭配美元符号$用于整型计算

    • 示例如下:

      # 1. 用于整型数据计算
      var1=100
      var2=200
      # 可以使用 $+方括号来表示整型运算
      var3=$[ $var1+$var2+1 ]
      # 也可以使用 $+双括号来表示整型运算
      var4=$(($var1 + $var2 + 1))
      echo $var3
      echo $var4
      
    • 由于 if-then语句 不能测试命令状态码之外的条件,所以Bash Shell提供了 test命令 用于帮助 if-then语句 测试其他的条件,如数值比较、字符串比较、文件比较等,而test命令的简写形式就是方括号[ ],其中第一个方括号和第二个方括号之前都必须加上空格,否则会报错

    • 2.2 数值比较

    比较描述
    n1 -eq n2检查n1是否与n2相等
    n1 -ge n2检查n1是否大于或等于n2
    n1 -gt n2检查n1是否大于n2
    n1 -le n2检查n1是否小于或等于n2
    n1 -lt n2检查n1是否小于n2
    n1 -ne n2检查n1是否不等于n2
    • 示例如下:

      #!/bin/bash
      # 2. 数值比较
      n1=20
      n2=10
      if [ $n1 -ge $n2 ]; then
          echo "n1 is greater than or euqal to n2"
      else
          echo "n1 is less than n2"
      fi
      
    • 注意:Bash Shell只能直接处理整数,赋值浮点数会报错

    • 2.3 字符串比较(注意符号两边两边要有空格)

    比较描述(注意符号两边需要空格)
    str1 = str2检查str1是否和str2相同
    str1 != str2检查str1是否和str2不同
    str1 < str2检查str1是否比str2小
    str1 > str2检查str1是否比str2大
    -n str1检查str1的长度是否非0
    -z str1检查str1的长度是否为0
    • 示例如下:

      # 3. 字符串比较
      user=root
      if [ $(whoami) = $user ]; then
          echo "root is online"
      else
          echo "root is offline"
      fi
      
    • 2.4 文件比较

    比较描述
    -d file检查file是否存在并是一个目录
    -e file检查file是否存在
    -f file检查file是否存在并是一个文件
    -r file检查file是否存在并可读
    -s file检查file是否存在并非空
    -w file检查file是否存在并可写
    -x file检查file是否存在并可执行
    -O file检查file是否存在并属当前用户所有
    -x file检查file是否存在并可执行
    -G file检查file是否存在并且默认组与当前用户相同
    file1 -nt file2检查file1是否比file2新
    file1 -ot file2检查file1是否比file2旧
    • 示例如下:

      # 4. 文件比较
      fileName=test3
      if [ -e $fileName ]; then
          echo "$fileName  exists"
      else
          echo "$fileName doesn't exists"
      fi
      

    • 2. 花括号{ }

    • 花括号一般用于需要变量和字符串组合输出时,若想要实现变量后拼接字符串就需要使用花括号

    • 示例如下:

      #!/bin/bash
      # 花括号使用练习
      var=50
      var1=100
      var2=200
      # 若想要实现var变量后拼接字符串就需要使用花括号
      echo $var1 ${var}1
      echo $var2 ${var}2
      

    • 3. 双括号(( ))

    • 双括号允许在比较语句中使用高级数学表达式也可以与美元符号搭配,用于整型数据计算

    符号描述
    val++后增
    val--后减
    ++val先增
    --val先减
    逻辑求反
    按位求反
    **幂运算
    <<左移位
    >>右移位
    &布尔与
    |布尔或
    &&逻辑与
    ||逻辑或
    • 示例如下:

      #!/bin/bash
      # 双括号使用练习
      # 用于高级数学表达式
      var1=10
      if (($var1 >= 10)); then
          for ((i = 0; i < 3; i++)); do
              echo $i
          done
      fi
      
      # 用于整型数据计算
      var1=100
      var2=200
      # 可以使用$+双方括号来表示整型运算
      var3=$[ $var1+$var2+1 ]
      # 也可以使用$+双括号来表示整型运算
      var4=$(($var1 + $var2 + 1))
      echo $var3
      echo $var4
      

    • 4. 双方括号[[ ]]

    • 双方括号提供了针对字符串比较的高级特性,能够使用数学符号比较字符串,并实现了模式匹配

      #!/bin/bash
      # 双方括号使用练习
      fileName=test5
      if [[ $fileName==test* ]]; then
          echo "This is a test file!"
          if [[ $fileName==test5 ]]; then
              echo "This file is test5!"
          fi
      fi
      
    • 注意:不是所有的Shell都支持双方括号


    • 5. 参考资料

    《Linux命令行与shell脚本编程大全(第三版)》

    • End~

    展开全文
  • Shell| shell中双小括号使用方法

    千次阅读 2018-03-18 19:25:39
    使用语法: ((表达式))用来扩展Shell中的算术运算,以及赋值运算,扩展for,while,if条件测试运算. 注意点: 1.在双括号结构中,所有的表达式可以像c语言一样,如a++,b-- 2.在双括号结构中,所有变量可以不加入$符号前缀...

    使用语法:
    ((表达式))用来扩展Shell中的算术运算,以及赋值运算,扩展for,while,if条件测试运算.

    注意点:
    1.在双括号结构中,所有的表达式可以像c语言一样,如a++,b--
    2.在双括号结构中,所有变量可以不加入$符号前缀,也可以加入.
    3.在双括号可以进行逻辑运算,四则运算,而且运算符合数值之间可以没有空格,也可以有空格.
    4.双括号结构扩展了for,while,if条件测试运算.
    5.支持多个表达式运算,各个表达式之间用逗号,分开.
    6.使用[]时必须保证运算符与数值之间有空格,而(())时数值与运算符可以没有空格.

    小技巧:
    1.新建(()).sh文件vim "(()).sh",因为()在shell中有特殊含义,只能用"括起来,用单引号也是不行的.
    2.使用文件时:vim \(\(\)\).sh,可以在要使用的含有特殊符号的文件前面添加一个转义符号\然后可以按提示按补全.

    例子:求100以内的偶数

    #! /bin/bash
    
    num=2
    
    while ((num<100))    #数值与运算符可以没有空格,变量的使用时也可以不使用$num
    do
            echo "$num"
            ((num=num*2))
    done

    结果:

    [root@yveshe ~]# ./\(\(\)\).sh 
    2
    4
    8
    16
    32
    64
    展开全文
  • 第第 PAGE 1 页 共 NUMPAGES 1 页c语言大括号的用法大括号{}出现在shell脚本的各个角落,其用法也各有不同。同音多义字在汉语中最容易让人混淆,而大括号也正是bash语言中的同音多义字。下面小编就为大家介绍c语言大...

    第 PAGE 1 页 共 NUMPAGES 1 页

    c语言大括号的用法

    大括号{}出现在shell脚本的各个角落,其用法也各有不同。同音多义字在汉语中最容易让人混淆,而大括号也正是bash语言中的同音多义字。下面小编就为大家介绍c语言大括号的用法。  {}第一种用法,符号扩展  #!/bin/bash  echo \{hello,world}\  #######################  # 输出为:hello world  #######################  echo {a..c} #只能是..  ######################  # 输出为: a b c  ######################  {}第二种用法,代码块表示法,与c语言中的作用相似,c语言中,有了{}的代码块,其变量作用域就改变了;bash中,却不存在这个功能,在{}中的内容,仍然与外部变量名相通。此外,{}代码块表示法还有一个作用,就是将代码块内所有的输入输出信息重定向。  #脚本1  #!/bin/bash  a=123  { a=321; } #大括号两边内部变量与大括号之间一定要用空格隔开  echo a = $a #输出 a=321  #脚本2  #!/bin/bash  File=`pwd`/fas #fas是由自己在当前目录创建的文件  {  read line1  read line2  } $File #此处进行重定向,将fas文件的内容读入到line1和line2  echo First line in $File is:   echo $line1  echo  echo second line in $File is :  echo $line2  exit 0  与大括号{}有些相似的符号是圆括号()。但圆括号()内的代码将启动一个子shell来运行,{}不会这样。  #!/bin/bash  a=123  ( a=321; )  echo a = $a #a=123  附注:  1.如果想让你的脚本像ls等命令一样通用,那么需要将命令复制到/usr/local/bin,并使用chmod 777 filename修改其执行权限。  2./bin目录、/sbin目录、/usr/local/bin/目录、/usr/local/sbin目录、/usr/bin目录、/usr/sbin目录的区别与联系  最需要注意的一点,usr不是user的意思,而是unix system resource的简称,也就是unix系统资源。在/usr这个目录下,放了一些系统  相同之处:都是一些命令;  不同之处:  /bin:基本命令  /sbin:基本系统命令  /usr/bin:与/bin类似,包括此后安装软件的命令  /usr/sbin:与/sbin类似,包括此后增加的系统管理的一些命令  /usr/local/bin:与/bin,/usr/bin类似,但是局部(local)范围,linux是多用户系统,有分级的权限,有些软件内容必须添加在/usr/local/bin,而不是/usr  /usr/local/sbin:同上  3.好脚本需要珍藏,以备不时之需。

    展开全文
  • 考虑一下:来源DF:In [79]: dfOut[79]:Brains Bodies0 42 341 32 23选择一列 – 导致Pandas.Series:In [80]: df['Brains']Out[80]:0 421 32Name: Brains, dtype: int64In [81]: type(df['Brains'])Out[...
  • netstat -s 查看正在使用的所有协议使用情况 nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名 tracert -参数 ip(或计算机名) 跟踪路由(数据包),参数:“-w数字”用于设置超时...
  • x_values = dataframe[['Brains']]数据框对象由2列(大脑和身体)组成Brains Bodies42 3432 23当我打印x_values时,我得到这样的东西:Brains0 421 32就dataframe对象的属性和方法而言,我知道pandas文档,但是双括号语法...
  • 括号大小控制配对使用使用\left和\right不需要配对使用:\big 1. 各类括号总结 2. 括号大小控制 配对使用使用\left和\right 可自动控制不同层次括号的大小,如1 中表所示。 不需要配对使用:\big 参考: ...
  • } } 每使用一次这个语法,就会多一个字节码文件,更深层次的问题暂时没遇到,不过最好还是少用吧。 最后跑个题,传统内部类编译后得到如下结果。 public class Main2 { class innerClass{ String year; public void...
  • 双大括号法 利用这种方法,我们可以把创建和初始化写在一起: list = new ArrayList() { { add("Linux"); add("Windows"); add("Mac"); } }; assertTrue(list.contains("Mac")); 好处与坏处 好处: (1)相对普通的...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    1技术难度高 2工作量太大 不是必须的 1开发环境 2LLD 3单元测试工程师 4架构师(详细设计人员) 3外部测试: 使用验收测试的原因 1内部测试只能模拟用户使用却不能代替用户使用 2由于专业不同业务背景不同无法模拟...
  • 什么是Java双大括号初始化?通常情况下,初始化Java集合并向其中添加几个元素的步骤如下:Set set = new HashSet<>();set.add(1);set.add(2);set.add(3);或者我们可以在静态初始化块中向作为静态变量的集合...
  • Pandas中中括号和双中括号

    千次阅读 多人点赞 2017-07-26 10:06:44
    当我们使用pandas中的groupby进行分组聚合时,若对需要聚合的单列使用双中括号,则输出时会带有列标签df.groupby(['key1','key2'])[['data2']].mean() Out[27]: data2 key1 key2 a one 0.072958 two -0.962946 b...
  • 之前的代码是这个样子的: QueryWrapper<RyxyMemberEntity> wrapper = new QueryWrapper<>(); wrapper.eq("phoneNumber", phone); if (StringUtils.isEmpty(scenetype)){ wrapper.isNull("scenetype...
  • js里两个括号含义

    千次阅读 2020-02-14 08:37:57
    (function(){})() 相当于先定义了一个匿名函数然后调用,类似于; var fun = function(){}; fun(); 第二对括号代表立刻执行前面的匿名函数,括号内的值会作为实参传递给匿名函数。 ...
  • 参考:https://www.gnu.org/software/bash/manual/html_node/Conditional-Constructs.html#Conditional-Constructshttp://bbs.chinaunix.net/forum.php?mod=viewthread&...双圆括号Thearithmetic...
  • 不用模板栈的话,就是建立一个数组,输入若是左括号,则入栈,stack[++top]=a[i],top为栈顶元素的指针,若是右括号,则出栈,stack[top--]。此处关键是自增符号的顺序,为什么入栈要先加,出栈后减,因为栈顶指针...
  • 一、去掉二级列表中的括号 list_1 = [[1,2,3],[4,5],[6]] list_2 = [int(x) for item in list_1 for x in item] print(list_2) 结果如下: [1, 2, 3, 4, 5, 6] 二、去掉外面的括号 list_0 = [1, 2, 3, 4, 5, 6] ...
  • 双方括号: $[\![a]\!] $ 双三角括号 \makeatletter \newsavebox{\@brx} \newcommand{\llangle}[1][]{\savebox{\@brx}{\(\m@th{#1\langle}\)}% \mathopen{\copy\@brx\kern-0.5\wd\@brx\usebox{\@brx}}} \new...
  • 今天写到一个题目: #include #define SWAP(T,A,B){\ T temp;\ temp = A;\ A = B;\ B = temp;\ } int main() { int arr[] = {3,4,...括号不紧挨着define的错误 这种情况就算加了斜杠也没用,照常出错,还解决不了问题。
  • 对于array的初始化我们可以使用列表初始化: array<int, 8> test = { 1, 2, 3, 4, 5, 6, 7, 8 }; 但是当我们不再使用简单的内置类型array时: array<pair<int, int>, 8> dirs = { {-1, ...
  • 满意答案聊城模型推荐于 2017.11.23采纳率:47%等级:9已帮助:1113人for循环语句如果循环体内只有一条执行语句则不用加大括号,如果执行语句为多条语句则必须用大括号括起来,以表示这一部分的执行语句都在循环体内...
  • 关于shell脚本中双括号的问题

    千次阅读 2014-10-14 10:04:32
    这段时间在写shell脚本,很疑惑的是,网上对shell变量的运算使用括号“(())”,于是在网上查了查: 使用方法: 语法: ((表达式1,表达式2…)) 特点: 1、在双括号结构中,所有...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼#include #include #include "malloc.h"char * changeOrder(char *s);struct Node{char *data;struct Node * link;};struct Node * top1 = NULL;struct Node * top2 = ...
  • CSS实现悬浮出现双括号

    千次阅读 2015-04-05 23:12:00
    a {  position: relative;  display: inline-block;  outline: none;  text-decoration: none;  color: #000;...悬浮出现双括号演示     点我
  • 如下所示:调用StringUtils工具类的strip()方法去掉中括号"[ ]":StringUtils.strip(word.toString(),"[]") //第一个参数放集合,第二个参数去掉中括号"[]"StringUtils工具类代码:package com.ktamr.common.utils;...
  • for循环的大括号问题

    千次阅读 2021-05-07 21:47:23
    for循环语句如果循环体内只有一条执行语句则不用加大括号,如果执行语句为多条语句则必须用大括号括起来,以表示这一部分的执行语句都在循环体内,循环条件满足时要被执行的语句; 如: (1)for(i=0;i<5;i++) s...
  • <html> <head> <meta charset="utf-8"> <title>title> <script src="../js/vue.js">script> head> <body> <div id="app"> 双括号表达式h1> <h2>{{msg}}h2> <h2>{{msg.toUpperCase()}}h2> <p v-text="msg2">p> ...
  • c++重载两个中括号[][]

    2017-04-10 05:34:14
    c++重载两个中括号[][],就像二维数组一样使用 直接重在不行,得怎么弄?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,022
精华内容 4,408
关键字:

双重括号的使用