正则表达式中的正则表达式插入符号

nfs0ujit  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(562)

具体是什么时候 ^ 意思是“match start”,在正则表达式中什么时候是“not the following”?
从wikipedia的文章和其他参考资料中,我得出结论,它的意思是前者在开头,后者与括号一起使用时,但是程序如何处理插入符号在开头和括号中的情况呢?你说什么, ^[b-d]t$ 匹配?

vhmi4jdf

vhmi4jdf1#

^ 仅在内部和开始时表示“不如下” [] ,所以 [^...] .
当它在里面的时候 [] 但不是一开始,它意味着 ^ 性格。
当它逃走的时候( \^ ),这也意味着 ^ 性格。
在所有其他情况下,它表示字符串/行的开始(哪一个取决于语言/设置)。
总之: [^] ->不是a、b或c [ab^cd] ->a,b,^(字符),c或d \^ ->a ^ 性格
其他任何地方->字符串/行的开头。
所以呢 ^[b-d]t$ 指:
线路起点
b/c/d字符
t字
行尾

anhgbhbe

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* 当然可以,但它匹配了很多可以跨越线路的不必要的原油。

相关问题