正则表达式文字-文本范围

2024-05-10

有什么方法可以向正则表达式指示要显式搜索的文本块吗?我问这个问题是因为我必须匹配一段非常非常长的文本,其中包含各种元字符(并且(并且必须完全匹配),然后是一些灵活的内容(足以值得使用正则表达式),然后是更多文本必须完全匹配。

冲洗,重复。

不用说,我真的不想经历整个事情并必须转义每个元字符。这让它变得难以阅读。有没有办法把这些部分包裹起来,这样我就不必这样做了?

Edit:

具体来说,我正在使用 Tcl,并且通过“元字符”,我的意思是存在各种长字符串,例如“**$^{*$%\)“。我真的不想逃避这些。我的意思是,它会向字符串添加数千个字符。Tcl regexp 是否有文字文本范围元字符?


在 Tcl 中执行此操作的正常方法是使用辅助过程来执行转义,如下所示:

proc re_escape str {
    # Every non-word char gets a backslash put in front
    regsub -all {\W} $str {\\&}
}

set awkwardString "**$^{*$%\\)"
regexp "simpleWord *[re_escape $awkwardString] *simpleWord" $largeString

如果你有一个完整的文字字符串,你还有另外两种选择:

regexp "***=$literal" $someString
regexp "(?q)$literal" $someString

然而,这两种模式都只允许纯文字的模式;你不能以这种方式混合模式和文字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式文字-文本范围 的相关文章

随机推荐