Dim idx as integer = 0 While Row.Column1.length > idx + 7 Output0Buffer.AddRow() Output0Buffer.outColumn1 = Row. Column1.Substring(idx,7) idx +=1 End While
指定匹配必须从行或字符串的开头开始。
字符串是什么意思?
这是否表示^
将与/^(apple)/
匹配,因为apple是字符串applesauce的开头。
this applesauce is delicious
总是必须处于正则表达式引擎搜索的开头吗?
为什么他不匹配^
?
/apple ^(his)/
因为apple
his
在字符串的开头?
请转义字符集中his
的含义。
答案 0 :(得分:1)
否,对于正则表达式而言,^
或\A
并非总是必需的。有时,如果需要,我们会在表达式中包含它们,尤其是对于验证字符串。
在您的示例中,this applesauce is delicious
是字符串,并且^(apple)
在这里与我们的字符串不匹配,因为我们的字符串不是以apple
开头,而是以this
开头:
如果我们删除起始锚,我们的表达式将如下所示:
(apple)
具有捕获组()
,那么它将在字符串的任何部分中找到并捕获apple
。
如果我们在表达式中添加单词边界,例如:
(\bapple\b)
那么,如果您愿意的话,我们只会发现apple作为一个单独的单词,而不是子字符串的一部分,因此我们不会捕获applesauce
。
jex.im可视化正则表达式:
String指向表达式的整个输入,可能只有一行或可能由几行组成(例如一个段落)。例如,这被认为是一个字符串,其中包含多行:
this applesauce is delicious this applesauce is delicious
apple is delicious apple is delicious
apple is delicious
apple is delicious
apple is delicious
在最后一个问题中,apple ^(his)
不匹配:
apple
his
因为在new line
和apple
之间有his
,但是空格()或
\s
还是不够的
apple\s*^(his)
将与此相匹配,因为\s*
也同时通过了space
和new lines
,尽管在那里^
不一定是必需的。