如何比较 Apache 免费标记中的两个字符串

How to compare two string in apache free marker

我在 apache free marker.

中有以下情况
str1= Shruti

str2可以( "Shruti" ,"shruti", shruti,'Shruti' or SHRUTI)

如果字符串 2 是 double quotesingle quote 或纯文本,我们需要 return 为真。它也应该不区分大小写。 如果包含并比较,如何忽略字符串中的单引号和双引号?

基本上我想比较 2 个字符串。如果它包含 "single quote or double quote" 它应该忽略。我尝试使用 str1=str2?remove_beginning(""")?remove_end("""),但出现错误。

您可以使用 replace() 并通过用反斜杠 \"\' 转义来匹配引号。我还使用 trim() 删除前导和尾随空格,并使用 lower_case() 忽略大小写。
我在 Online FreeMarker Tester

中尝试了以下内容
str1 = "\"Hi\""
str2 = "'hi'"
<#if str1?trim?replace("\'","")?replace("\"","")?lower_case == str2?trim?replace("\'","")?replace("\"","")?lower_case>
  The two strings are equal
  ${str1?trim?replace("\'","")?replace("\"","")?lower_case} = ${str2?trim?replace("\'","")?replace("\"","")?lower_case}
  
</#if>

The two strings are equal

hi = hi


这是一个可用于比较两个字符串的函数。

<#function is_equal x y>
  <#return x?trim?replace("\'","")?replace("\"","")?lower_case == y?trim?replace("\'","")?replace("\"","")?lower_case>
</#function>

<#if is_equal(str1,str2)>
  The two strings are equal
</#if>