删除 Tcl 中字符串中某个字符后的所有内容
Removing everything after a certain character in a string in Tcl
所以,这看起来很微不足道,但我无法解决它。
在文件行中的正则表达式 运行 之后:
(在本例中,我将查找 /Name:它也可能用于 Arch.Type 等...)
/Name: Plugin /Version: 1.0 /Arch: Windows 64 Windows 32 Linux Mac /Summary: asdasdas /Type: sdfsdf
我有一个像这样的字符串:
Plugin /Version: 1.0 /Arch: Windows 64 Windows 32 Linux Mac /Summary: asdasdas /Type: sdfsdf
我需要从这个字符串中删除第一个“/”之后的所有内容(因此只留下 "Plugin")
试试这个:
regexp {/Name: ([^/]+)} {/Name: Plugin /Version: 1.0 /Arch: Windows 64 Windows 32 Linux Mac /Summary: asdasdas /Type: sdfsdf} all match
puts $match
带括号的捕获表达式将匹配除斜线以外的任何字符一次或多次。
您可以使用以下方法删除字符串中第一个 /
之后的所有内容:
set myVar [regsub {/.*} $myVar ""]
# Old school Tcl 8.4 and before version (upgrade, man!)
regsub {/.*} $myVar "" myVar
最好不要一开始就捕获您不想要的东西。
所以,这看起来很微不足道,但我无法解决它。
在文件行中的正则表达式 运行 之后:
(在本例中,我将查找 /Name:它也可能用于 Arch.Type 等...)
/Name: Plugin /Version: 1.0 /Arch: Windows 64 Windows 32 Linux Mac /Summary: asdasdas /Type: sdfsdf
我有一个像这样的字符串:
Plugin /Version: 1.0 /Arch: Windows 64 Windows 32 Linux Mac /Summary: asdasdas /Type: sdfsdf
我需要从这个字符串中删除第一个“/”之后的所有内容(因此只留下 "Plugin")
试试这个:
regexp {/Name: ([^/]+)} {/Name: Plugin /Version: 1.0 /Arch: Windows 64 Windows 32 Linux Mac /Summary: asdasdas /Type: sdfsdf} all match
puts $match
带括号的捕获表达式将匹配除斜线以外的任何字符一次或多次。
您可以使用以下方法删除字符串中第一个 /
之后的所有内容:
set myVar [regsub {/.*} $myVar ""]
# Old school Tcl 8.4 and before version (upgrade, man!)
regsub {/.*} $myVar "" myVar
最好不要一开始就捕获您不想要的东西。