我想通过写一个正则表达式来获取以abc_开头的字符串或用xyz_开头的字。 这里我的脚本:TCL正则表达式示例
[regexp -nocase -- {.*\s+(abc_|xyz_\S+)\s+.*} $str all necessaryStr]
所以,如果我申请上str1和str2的上述正则表达式写我想从$ str2的$ str1和“abc_bye”得到“xyz_hello”。
set str1 "gfrdgasjklh dlasd =-0-489 xyz_hello sddf 89rn sf n9"
set str2 "dytfasjklh abc_bye dlasd =-0tyj-489 sddf tyj89rn sjf n9"
但我的正则表达式不起作用。我的问题是:
1)我的正则表达式有什么问题? 2)用regexp查找以某些预定义前缀开始的作品是好事,还是使用字符串函数(字符串匹配等)更好?
你要锣想添加'\ m'或'\ y'到你的模式开始,以确保你匹配开始一个字 - 正如所写的,它会匹配“zzzabc_zzz” –
是的,从最初的问题来看,“zzzabc_zzz”是否应该匹配或者“0abc_x”,“_abc_x_”等等。由于现在已经从其他评论中清楚了,我会更新我的答案。干杯。 – Ergwun