来自 Perldoc:
qr/STRING/msixpodualn
Run Code Online (Sandbox Code Playgroud)
该运算符将其 STRING 引用(并可能编译)为正则表达式。STRING 的插值方式与 m/PATTERN/ 中的 PATTERN 相同。
m/PATTERN/msixpodualngc
/PATTERN/msixpodualngc
Run Code Online (Sandbox Code Playgroud)
在字符串中搜索模式匹配,在标量上下文中,如果成功则返回 true,如果失败则返回 false。如果没有通过 =~ 或 !~ 运算符指定字符串,则搜索 $_ 字符串。(用 =~ 指定的字符串不必是左值 - 它可能是表达式求值的结果,但请记住 =~ 绑定得相当紧密。)另请参阅 perlre。
选项如上面 qr// 中所述
我确信我错过了一些明显的东西,但我根本不清楚这些选项有何不同 - 它们看起来基本上是同义词。你什么时候会使用qr//
代替m//
,反之亦然?
这可能是显而易见的事情,但我必须问,因为我没有看到它。
我试图在此文本文件中进行以下替换。我要这个:
bind_password = 'grafana'
Run Code Online (Sandbox Code Playgroud)
变成这样:
bind_password = ''
Run Code Online (Sandbox Code Playgroud)
我尝试在包含该行的文件上使用以下正则表达式单行:
$ perl -0pe 's/(bind_password = \')grafana\'/$1\'/g' file.txt
bash: syntax error near unexpected token `)'
Run Code Online (Sandbox Code Playgroud)
当我在 regex101 上尝试正则表达式时,效果很好: https: //regex101.com/r/0fb4Pu/1。不同之处在于我必须转义单引号。我尝试在正则表达式周围使用双引号而不是单引号,如下所示:
perl -0pe "s/(bind_password = ')grafana'/$1'/g" file.txt
Run Code Online (Sandbox Code Playgroud)
但是,虽然这不会返回错误,但它并没有达到我想要的效果。相反,它用一个冒号替换字符串,如下所示:
'
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?
我正在编写一个 Web 应用程序,它将向 MySQL 数据库表中插入新记录。大多数信息都是用户提供的,除了主键,我想使用 Auto_Increment 获取主键。当我从 Web 应用程序运行以下查询时:
SELECT Auto_Increment FROM information_schema.tables WHERE table_name='charlist';
Run Code Online (Sandbox Code Playgroud)
它不返回任何内容 - 我通过将查询结果存储在变量中然后echo
对该变量进行检查,但没有输出任何内容。我还使用 MySQL 控制台运行此查询,它返回以下内容:
+----------------+
| Auto_Increment |
+----------------+
| NULL |
+----------------+
Run Code Online (Sandbox Code Playgroud)
我的表肯定有主键字段,并且有5条记录,主键字段被填充。这是表的结构。
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| bookIntroduced | int(11) | YES | | NULL | |
| pageIntroduced | int(11) | YES | | NULL | …
Run Code Online (Sandbox Code Playgroud) 我的表格列出了George RR Martin目前出版的"冰与火之歌"中所有5首角色.每行包含一条记录,表明该字符所在系列中的哪一本书(编号为1-5)和一个表示该字符性别(M/F)的字母.例如:
A B C
1 Character Book Gender
------------------------------
2 Arya Stark - 1 - F
3 Eddard Stark - 1 - M
4 Davos Seaworth - 2 - M
5 Lynesse Hightower - 2 - F
6 Xaro Xhoan Daxos - 2 - M
7 Elinor Tyrell - 3 - F
Run Code Online (Sandbox Code Playgroud)
我可以COUNTIF
用来发现这张表中有三个女性和三个男性,但我想知道,例如,书中有多少男性.我怎么能写出一个可以计算这个数的公式呢?这是我想要实现的伪代码:
=COUNTIF(C2:C7, Column B = '2' AND Column C = 'M')
Run Code Online (Sandbox Code Playgroud)
这会输出2
.
我知道这个任务更适合数据库和SELECT
查询,但我想知道如何在LibreOffice Calc电子表格的约束下解决这个问题,而不使用宏.基于Excel的解决方案很好,只要它们也适用于Calc.如果没有使用的解决方案,COUNTIF
只要它有效就没关系.
我正在尝试过滤一个对象列表,每个对象都有一个日历年作为其值之一.用户键入开始年份(例如1920年)和结束年度(1940年),并且将具有这两个值之间的年份的任何对象添加到列表中.因此,对于整个列表中的每个对象,我执行以下条件:
If _end >= _nList(i).Year > _start Then
filterList.Add(_nList(i))
End If
Run Code Online (Sandbox Code Playgroud)
但是,这会返回false.但当我改变它时:
If _start < _nList(i).Year <= _end Then
filterList.Add(_nList(i))
End If
Run Code Online (Sandbox Code Playgroud)
这评估为true,并运行代码._nList(i).Year
是1928年,_start
是1920年,_end
是1940年.从逻辑上讲,这两个陈述应该是等价的:
1940 >= 1928 > 1920
1920 < 1928 <= 1940
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,他们不是这种情况.我错过了什么?
我正在 Excel 中试用新的 FILTER 函数,它的工作方式似乎与 Google 表格中的大致相同。然而,我还没有弄清楚的一件事是,是否有任何类似于 Sheet 的 QUERY 函数的东西。我可以很好地生成 FILTER,但我不知道如何只显示一列结果。在下面的示例中,我只想显示 FILTER 结果的第二列。
有没有一个简单的解决方案来做到这一点?
我正在学习 C 语言并了解指针。据我了解,当您声明一个数组时,该数组的地址是该数组中第一个元素的地址。所有其他元素都连续存储在内存中。
当我使用onlinegdb.com 上的在线 C 编译器运行此代码时...
int main()
{
int num[5] = { 0, 1, 2, 3, 4 };
for (i = 0; i < 5; i++) {
printf("num[%d] has the value %d and is stored at address %p\n",
i, num[i], &num[i]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我观察到以下情况...
num[0] has the value 0 and is stored at address 0x7ffe9973e600
num[1] has the value 1 and is stored at address 0x7ffe9973e604
num[2] has the value 2 and is stored at …
Run Code Online (Sandbox Code Playgroud) 一旦你在一个目录上运行 git init ,git 就会知道该目录及目录下存在的所有文件。这些是未跟踪的文件。我非常熟悉当您暂存这些文件并且它们成为“跟踪”文件时会发生什么。但我想知道的是,Git 是如何找到未跟踪的文件的?git 是否每隔几分钟或固定间隔运行一次树命令?每次输入 git status 或 git add 时它都会运行树命令吗?或者每次保存文件时?有什么更聪明的事情发生吗?
简而言之,我的问题是:
Git 如何找到未跟踪的文件?
Git 多久搜索一次“未跟踪”文件?
我几乎是SQL的新手,我正在使用MySQL和SQLyog.我有五个字段,主键的StudentForename,StudentSurname,StudentAge,StudentHouse和StudentID.StudentID字段设置为主键,而不是Null和AutoIncrement.我正在尝试使用INSERT INTO语句而不必输入主键 - 显然我不应该,它应该更新自己.但它没有工作,它返回错误"列计数与第1行的值计数不匹配".这是我正在使用的代码.我已经设置了表,所以我没有得到查询的代码
INSERT INTO students VALUES('Harry', 'Potter', 'Slytherin', 30)
Run Code Online (Sandbox Code Playgroud) 我想编写一个公式来获取用户单击的单元格的行号和列号。每次用户单击不同的单元格时,公式应自动更新以反映当前选定的单元格。我猜这不能通过公式来完成 - 如果没有,有没有办法在 VBA 中做到这一点?