Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与字符和数字混合相关的tcl regexp_Regex_Tcl_Regexp Replace - Fatal编程技术网

与字符和数字混合相关的tcl regexp

与字符和数字混合相关的tcl regexp,regex,tcl,regexp-replace,Regex,Tcl,Regexp Replace,我的文件包含 roll_number : someNumber ; name(mixOfcharactersAndNumbers) filePathInLinux 比如 roll_number : 81 ; name(JOHN_23_CARTER) /home/directory/johnc roll_number : 22 ; name(michael21_Lee) /home/directory/mhlee 我的regexp是 regexp {.*name([a-zA-Z0-9]+.

我的文件包含

roll_number : someNumber ; name(mixOfcharactersAndNumbers) filePathInLinux 
比如

roll_number : 81 ; name(JOHN_23_CARTER) /home/directory/johnc
roll_number : 22 ; name(michael21_Lee) /home/directory/mhlee 
我的regexp是

regexp {.*name([a-zA-Z0-9]+.*} $line match name 
regexp {.*name(.*).*} $line match name 

似乎由于数字和字符的混合,我不能正确地使用regexp,我是不是遗漏了什么

主要问题是,您没有转义
字符,也没有解释第一个正则表达式中的
\ucode>字符。此外,您不需要匹配整个输入,TCL正则表达式不需要允许部分匹配,即在较长的子字符串中匹配较短的子字符串

只需匹配
名称(
(使用
名称)(
),然后将一个或多个单词字符捕获到组1中(使用
(\w+)
):

请参见打印
JOHN\u 23\u CARTER

另外,请参见

set a "roll_number : 81 ; name(JOHN_23_CARTER) /home/directory/johnc"
regexp {name\((\w+)} $a - name