带有反斜杠的正则表达式问题



我遇到了一个看似简单的regex捕获问题。我使用的是AutoIt的stringRegExp()函数。

源字符串为:

1 U:some text heremore text over here6-17-2011Folder 2161804abc9831xyz10007569.JPG

我正试图捕捉"abc9831"one_answers"161804"。"abc"部分可以是"abc"、"def"或"ghi",后跟一串数字。"161804"可以替换为任何文本字符串。所有内容都不区分大小写。我目前正在使用以下正则表达式模式:

(?i)\\.+\\((abcd+)|(defd+)|(ghid+))

但它只是捕捉到了"abc9831"的部分。如何拾取它前面的文本字符串?

当下面的正则表达式用于AutoIt的StringRegExp()函数(使用标志"1"返回匹配数组)时,它将返回161804abc9831。这就是你想要的回报吗?

.*\([^\]+\[a-z]{3}d+)\.*

这里有一个你可以自己运行的例子:

#include <Array.au3>
$string = 'U:some text heremore text over here6-17-2011Folder 2161804abc9831xyz10007569.JPG'
$capture = StringRegExp($string,'.*\([^\]+\[a-z]{3}d+)\.*',1)
_ArrayDisplay($capture)
(?i)\\(.+\\(abcd+)|(defd+)|(ghid+))

如果你想把它全部放在一个字符串中(中间有一个),就应该做到这一点。

如果您想要两个单独的捕获:

(?i)\\(.+)\\((abcd+)|(defd+)|(ghid+))

编辑:新版本。。。

原始正则表达式是b(d+)\((?:abc|def|ghi)d+)。转义字符串为\b(\d+)\\((?:abc|def|ghi)\d+)

相关内容

  • 没有找到相关文章

最新更新