正则表达式里的#

我在看一段源代码是发现如下:
#\{([a-z0-9\-_]*?)\}#Ssie'用它来匹配文件中的所有{...}这样的
但是两边的##把我难住了,它要匹配的是{...},两边并没有##啊
我查了很多正则的资料,教材,都没有#这个,我又以为会不会是像/.../这样的界定符。。但是今天发现了 http://msdn.microsoft.com/zh-cn/library/cc295435.aspx
这个里面说:
#
最小为一或更多,用于匹配在此表达式之前出现一次或更多次的某个字符,可与尽可能少的字符相匹配。

例如,正则表达式 si.#er 可匹配“sicker”或“silkier”。在本例中,将句号 (.) 和井号 (#) 组合成一个语法。句号 (.) 紧挨在井号 (#) 表达式之前。井号 (#) 可与“si”和“er”之间出现一次或更多次的任意字符相匹配。句号 (.) 用作单词 sicker 中字符“c”和“k”的通配符,以及单词 silkier 中“l”、“k”和“i”的通配符。

。。为什么网上那么多教材都没有#这个字符

这是因为不同的语言中对正则表达式的支持是不一样的。

比较说有些语言就不支持\1这样的后向引用。

有些语言则是不支持(?<=a)这个的零宽断言。

同样的道理,有些语言不支持#这个符号,即使不支持,那当然就没有提到了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-11
这是因为不同的语言中对正则表达式的支持是不一样的。
比较说有些语言就不支持\1这样的后向引用。
有些语言则是不支持(?<=a)这个的零宽断言。
同样的道理,有些语言不支持#这个符号,即使不支持,那当然就没有提到了。
第2个回答  2019-07-14
对于使用通配符和元字符的字段,posix
正则表达式用于匹配或捕获字段的若干部分。它们通常用于文本操作任务。google
analytics(分析)中包括的多数过滤器使用这些表达式匹配数据并在找到匹配数据后执行操作。例如,
排除
过滤器专用于该过滤器中的正则表达式与该过滤器所指定字段中包含的数据匹配时排除点击。
正则表达式是包含字符、数字和通配符的文字字符串。
相似回答