具体是什么时候 ^ 意思是“match start”,在正则表达式中什么时候是“not the following”?从wikipedia的文章和其他参考资料中,我得出结论,它的意思是前者在开头,后者与括号一起使用时,但是程序如何处理插入符号在开头和括号中的情况呢?你说什么, ^[b-d]t$ 匹配?
^
^[b-d]t$
vhmi4jdf1#
^ 仅在内部和开始时表示“不如下” [] ,所以 [^...] .当它在里面的时候 [] 但不是一开始,它意味着 ^ 性格。当它逃走的时候( \^ ),这也意味着 ^ 性格。在所有其他情况下,它表示字符串/行的开始(哪一个取决于语言/设置)。总之: [^] ->不是a、b或c [ab^cd] ->a,b,^(字符),c或d \^ ->a ^ 性格其他任何地方->字符串/行的开头。所以呢 ^[b-d]t$ 指:线路起点b/c/d字符t字行尾
[]
[^...]
\^
[^]
[ab^cd]
anhgbhbe2#
要忽略阻止注解吗?好的,这个 ^\s* 可能不好因为 \s 可以跨越线。查看dot net是否支持水平空格 \h 如果没有 [^\S\r\n] 同样有效。可以使用多行内联修饰符 (?m) (或 RegexOptions.Multiline ). 这改变了 ^ 表示行的开头,而不是字符串的开头(默认值)。所以,结果是 (?m)^\h*(#) . 抓捕小组应该说出位置。如果不是,这也一样 (?m)(?<=^\h*)# 匹配的位置就是偏移量。完整的正则表达式信息请参见此https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference请注意 ^\s* 当然可以,但它匹配了很多可以跨越线路的不必要的原油。
^\s*
\s
\h
[^\S\r\n]
(?m)
RegexOptions.Multiline
(?m)^\h*(#)
(?m)(?<=^\h*)#
2条答案
按热度按时间vhmi4jdf1#
^
仅在内部和开始时表示“不如下”[]
,所以[^...]
.当它在里面的时候
[]
但不是一开始,它意味着^
性格。当它逃走的时候(
\^
),这也意味着^
性格。在所有其他情况下,它表示字符串/行的开始(哪一个取决于语言/设置)。
总之:
[^]
->不是a、b或c[ab^cd]
->a,b,^(字符),c或d\^
->a^
性格其他任何地方->字符串/行的开头。
所以呢
^[b-d]t$
指:线路起点
b/c/d字符
t字
行尾
anhgbhbe2#
要忽略阻止注解吗?好的,这个
^\s*
可能不好因为\s
可以跨越线。查看dot net是否支持水平空格\h
如果没有[^\S\r\n]
同样有效。可以使用多行内联修饰符(?m)
(或RegexOptions.Multiline
). 这改变了^
表示行的开头,而不是字符串的开头(默认值)。所以,结果是(?m)^\h*(#)
. 抓捕小组应该说出位置。如果不是,这也一样(?m)(?<=^\h*)#
匹配的位置就是偏移量。完整的正则表达式信息请参见此https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference
请注意
^\s*
当然可以,但它匹配了很多可以跨越线路的不必要的原油。