ing*_*939 3 regex vb.net asp.net caching thread-safety
我有一个复杂的正则表达式,用于帮助从用户输入中删除HTML.我知道.NET在某种程度上缓存了静态Regex调用,但是这个调用很大并经常使用,所以我希望它可以随意使用.
在一个网站项目中,我想在App_Code的一个帮助器类中将它定义为一个共享对象,例如:
App_Code中的AppHelper.vb:
Public Class AppHelper
Private Shared _rxRemoveHTML As New Regex("(<[\s\S]*?(style|script)[\s\S]*?>[\s\S]*?</[\s\S]*?(style|script)[\s\S]*?>)|<[^<>]*>|&#[0-9a-z]+;|&#|<|>|\\|`|\t", RegexOptions.IgnoreCase + RegexOptions.Multiline)
Run Code Online (Sandbox Code Playgroud)
这将使应用程序的生命保持活力.
公共职能部门负责:
Public Shared Function RemoveHTML(ByVal sIn As String) As String
Return _rxRemoveHTML.Replace(sIn, "")
End Function
Run Code Online (Sandbox Code Playgroud)
问题是,这是否是线程安全的,否则对于Web应用程序是否可以?