我正在尝试从API接收的titles
生成干净的URL。我已经用regex创建了一个函数来实现这一点。我目前的函数适用于大多数情况,但我有一个标题的问题,并且返回值的末尾有一个额外的-
,这会导致我的URL出现问题。例如,在我的标题"Hospital Services in Washington"
和当前regex函数中,当我希望返回时末尾不带-
并返回hospital-services
时,我的返回将是hospital-services-
。我目前正纠结于需要做出什么样的改变才能获得我想要的结果。大多数其他标题的回归都很好,但对上面的例子有所期待。
工作标题示例:Cedars Sinai Medical Center
转换为cedar-sinai-medical-center
当试图从文本中删除in Washington
或从其留下的-
的标题中删除任何州名称时,我的问题似乎出现了
以下是我的代码片段:
Private Function GenerateReportsFriendlyURL(ByVal url As String)
Dim cleanURL As String = Regex.Replace(url, "^A-Za-z0-9-/s]", "")
cleanURL = cleanURL.Replace(",", "")
cleanURL = cleanURL.Replace("'", "")
cleanURL = cleanURL.Replace(" and ", " ")
cleanURL = cleanURL.Replace("’", "%E2%80%99")
cleanURL = RetrieveNameOnly(cleanURL)
Dim builder As New StringBuilder(cleanURL.Replace(" &", ""))
Return builder.Replace(" ", "-").ToString().Insert(builder.Length - 0, "").ToLower()
End Function
我不知道你想用"将构建器变成字符串,然后通过在字符串的末尾插入零长度字符串来创建新的字符串";其中一部分:
Dim builder As New StringBuilder(cleanURL.Replace(" &", ""))
Return builder.Replace(" ", "-").ToString().Insert(builder.Length - 0, "").ToLower()
但从你说的问题来看,你的字段包含尾随的-
,你可能应该做:
cleanURL = RetrieveNameOnly(cleanURL)
Return cleanURL.Replace(" &", "").Trim().ToLower().Replace(" ", "-")