我尝试在 C# 中使用正则表达式来匹配可以包含以下内容的软件版本号:
一些例子:
10.1.23.26812 83.33.7.5 10.1.23.26812[d] 83.33.7.5[q]
无效示例:
10.1.23.26812[ 83.33.7.5] 10.1.23.26812[d 83.33.7.5q
我已经尝试过以下方法:
string rex = @"[0-9][0-9][.][1-9]([0-9])?[.][1-9]([0-9])?[.][1-9]([0-9])?([0-9])?([0-9])?([0-9])?([[][a-zA-Z][]])?";
Run Code Online (Sandbox Code Playgroud)
(注意:如果我尝试不使用“@”并通过执行“\[”来转义方括号,则会收到错误消息“无法识别的转义序列”)
我可以达到版本号正确验证的程度,但它接受后面的任何内容(例如:“10.1.23.26812thisShouldBeWrong”被匹配为正确)。
所以我的问题是:有没有一种方法可以使用正则表达式来匹配/检查字符串中的方括号,或者我是否需要将其转换为不同的字符(例如:将 [a] 更改为 a并匹配 *s )?
我现在试图理解委托,并偶然发现了以下代码段:
Function [Select](ByVal numbers As List(Of Integer), ByVal filter As Filter) As List(Of Integer)
Dim result As New List(Of Integer)
For Each number In numbers
' call delegate
If filter(number) = True Then
result.Add(number)
End If
Next
Return result
End Function
Run Code Online (Sandbox Code Playgroud)
我搜索了一个解释,但我能找到的只是这个,但这并不能帮助我理解我找到的片段。谁能帮我理解方括号[Select]的用途?
我现在正在协助一个项目,第一次构建模板,试图解决一些问题,但 html 中令我困惑的一个方面是方括号中的某些内容。我以前从未在 html 中使用过这些,所以我只是想知道它们的用途(当我在浏览器中打开页面时,它们都显示为文本)
这是一些代码:
<div class="container">
[HASBREADCRUMBS]
<ol class="nav-breadcrumb">
[BREADCRUMBS]
</ol>
[/HASBREADCRUMBS]
<h1 class="header-title" style="color:[TITLECOLOR];font-size:[TITLESIZE];">[TITLE]</h1>
</div>
Run Code Online (Sandbox Code Playgroud) 我想为文件的每一行添加方括号。
我正在使用sed -i "s/\(.*\)/[\1]/" file_name.txt命令,但我看到它插入了 2 倍的方括号,我的输出(只是第一行,每行都相同)看起来像这样
[[1,1,0,0,0,0,1,0,24,3,0,0,0,0,86,149,149,14,0,0,0,0,32,149,46,16,0,0,1,13,3,33,65,66,0,0,0,0,0,2,149,140,6,0,0,2,62,148,88,24,26,2,0,14,116,148,30,15,1,0,0,1,5,30,56,18,0,0,0,0,0,4,149,46,40,14,0,0,1,34,31,46,149,31,0,2,9,12,1,7,8,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,12,2,0,0,0,0,0,0,0,0,0,0,0,0]]
Run Code Online (Sandbox Code Playgroud)
如何使用 sed 为每一行插入一个方括号?请帮忙。提前致谢!
在 MATLAB 中,您可以轻松地创建一个整数数组
N = 100; % Number of points
A = 1:N; % row vector of 1,2,3,..., 100
Run Code Online (Sandbox Code Playgroud)
如果我想要一个列向量而不是一个行向量,我可以用
A = [1:N].';
Run Code Online (Sandbox Code Playgroud)
现在,MATLAB 警告我
Use of brackets [] is unnecessary. Use parentheses to group if necessary.
Run Code Online (Sandbox Code Playgroud)
好吧,它们不是不必要的,因为1:N.' 创建了一个行向量,因为只有标量N被转置,而不是整个数组。
我当然可以在该行、该文件或所有文件中取消显示此消息,但是为什么 MATLAB 首先会抛出此警告,因为在这种情况下我似乎不能没有这些括号?
事实证明,很大一部分混淆源于 The MathWorks 对美式英语的使用,因为其他英语世界使用术语括号for()和术语方括号for []。参见维基百科
我得到HW,在main.cpp的一行中,我想支持:
board1[{1,1}]='X';
Run Code Online (Sandbox Code Playgroud)
这背后的逻辑意义是在(1,1)的位置将"X"分配给"游戏板".我不知道如何创建一个接收大括号的数组,如[{int,int}].
我怎样才能做到这一点?
PS因为这些是符号而不是字符(因为我不认识任何属于这个问题的术语)在谷歌搜索这类问题非常困难,所以这可能是重复的:-(,希望不是.
我试着这样做:
第一次尝试:
vector<vector<int> > matrix(50);
for ( int i = 0 ; i < matrix.size() ; i++ )
matrix[i].resize(50);
matrix[{1,1}]=1;
Run Code Online (Sandbox Code Playgroud)
第二次尝试:
int mat[3][3];
//maybe map
mat[{1,1}]=1;
Run Code Online (Sandbox Code Playgroud)
第3次尝试:
class _mat { // singleton
protected:
int i ,j;
public:
void operator [](string s)
{
cout << s;
}
};
_mat mat;
string s = "[{}]";
mat[s]; //this does allow me to do assignment also the parsing of the string is a hustle
Run Code Online (Sandbox Code Playgroud) 我正在编写 C++ 代码,并遇到了一种情况,我希望为我的类重载方括号运算符。从各种来源,我发现您通常使用两种方法来执行此操作,一种使用const关键字,另一种不使用关键字,但在方法名称之前const使用与号 ( )。&下面给出一个例子。
int MyClass::operator[](unsigned int i) const {
return this->values[i];
}
int & MyClass::operator[](unsigned int i) {
return this->values[i];
}
Run Code Online (Sandbox Code Playgroud)
我的问题如下:
const,一种不带关键字?&)有什么作用?我试图在mySQL的列中匹配像'[sometext <someothertext>]'(即左方括号,文本,左尖括号,文本,右尖括号,右方括号)之类的字符串.最初我使用了以下查询(请注意,由于regex查询在mySQL中被转义两次,因此必须使用两个反斜杠,通常使用一个反斜杠):
SELECT * FROM message WHERE msgtext REGEXP '\\[(.+)?<(.+)?>\\]'
Run Code Online (Sandbox Code Playgroud)
此查询没有收到任何错误,但它返回了我不想要的内容.而不是(.+),我想要[^ \]](匹配除了右方括号之外的所有内容).当我更改查询时,我收到以下错误:"从regexp获取错误'重复 - 运算符操作数无效'
在阅读了这里的mySQL文档之后,它指出"要包括一个文字"字符,它必须紧跟在开头括号[." 因为我想要"^ \]"而不是"]",这是否可能,因为括号不能是开括号之后的第一个字符?以下是我尝试过的一些查询,它们会出现上面列出的相同错误:
SELECT * FROM message WHERE msgtext REGEXP '\\[([^\\]]+?)<([^\\]]+?)>\\]'
SELECT * FROM message WHERE msgtext REGEXP '\\[[^\\]]+?<[^\\]]+?>\\]'
SELECT * FROM message WHERE msgtext REGEXP '\\[[^[.right-square-bracket.]]]+?<[^[.right-square-bracket.]]]+?>\\]'
Run Code Online (Sandbox Code Playgroud)
更新:
以下查询运行没有错误,但不返回任何行,即使我知道有匹配我要查找的列(基于我在顶部的原始查询):
SELECT * FROM message WHERE msgtext REGEXP '\\[([^\\]]+)?<([^\\]]+)?>\\]'
Run Code Online (Sandbox Code Playgroud) 第一次看到像这样在Node.js的宣告功能.简而言之,代码与此类似
'use strict';
const Actions = {
ONE: 'one',
TWO: 'two',
THREE: 'three'
};
class FunMap {
run(action) {
const map = this;
map[action]();
}
[Actions.ONE] () {
console.log("Performing action one");
}
[Actions.TWO] () {
console.log("Performing action two");
}
[Actions.THREE] () {
console.log("Performing action three");
}
}
var funMap = new FunMap();
funMap.run('one');
funMap.run('two');
funMap.run('three');
Run Code Online (Sandbox Code Playgroud)
上面的程序将打印出来
Performing action one
Performing action two
Performing action three
Run Code Online (Sandbox Code Playgroud)
在Node.js/Javascript中是否有这种类型的函数声明的技术名称?
这一行如何将所有这些(通过使用带有字符串常量的方括号声明的函数)放入FunMap对象的属性函数中?
const map = this;
Run Code Online (Sandbox Code Playgroud)
[]javascript类中的方括号表示法是否引用了类本身?
我最近做了一些挖掘。由于我缺乏 Lisp 经验,我想验证一下我的发现。这是对 Scheme、Racket、Common Lisp 和 Clojure 中方括号行为的正确描述吗?
FORMAT控制字符串中。square-bracket ×10
brackets ×2
c++ ×2
regex ×2
.net ×1
bash ×1
clojure ×1
common-lisp ×1
curly-braces ×1
ecmascript-6 ×1
function ×1
html ×1
javascript ×1
lisp ×1
matlab ×1
mysql ×1
node.js ×1
scheme ×1
sed ×1
syntax ×1
vb.net ×1
vector ×1