tcl - 使用 TCL 剥离部分 URI 路径
问题描述
我对编程和 TCL 还很陌生。我正在研究利用 tcl 的 F5 iRules。
基本上我需要做的是去掉下面我的 URI 路径的第一部分(/Version_13.0.001/):
/Version_13.0.001/hs/user/123
将最终结果 URI 设置为:
/hs/user/123
以下是我的基本逻辑,我将如何将其合并到我的以下规则中?
if { ([HTTP::path] contains "Version_13") } {
pool version_13_pool }
解决方案
您可以使用split
orfile split
拆分路径,删除索引 1 处的目录名,然后使用join
or file join
。
但是,进行正则表达式搜索和替换似乎更简单:
set path "/Version_13.0.001/hs/user/123"
set newpath [regsub {^/Version_13[^/]*} $path ""]
puts $newpath ; # => /hs/user/123
在这里,我们在字符串的开头找到“/Version_13”,后跟非斜杠字符,并将其替换为空字符串。
或者也许使用string
命令找到第二个斜杠的索引,并从那里开始获取子字符串:
set newpath [string range $path [string first / $path 1] end]
推荐阅读
- smtp - Tcl/Tk 使用 smtp 和 mime 发送电子邮件,附件不显示附加文件名
- python - 为什么我的 twitter 天气机器人应用程序中的列表索引超出范围
- r - 如何将 R^2 值和 p 值添加到每个图表的每个回归线?
- apache-kafka - 使用压缩主题中止 Kafka 事务
- flutter - 从 Firestore 获取文档时如何显示循环进度指示器
- css - 将网格子项设置为默认占用所有列
- jquery - TableSorter — filter_external 上的 select2
- reactjs - 使用 react-table + typescript 自定义表格列
- java - 如何正确配置 Tomcat SSLHostConfig?
- python - 熊猫,删除重复但合并某些列