Regex 使用正则表达式提取字符串

Regex 使用正则表达式提取字符串,regex,Regex,我正在使用我为帮助台编写的HTA应用程序做笔记 我一直在使用regex(我能做的最好的)来CTRL+A我们的票证弹出窗口,然后在我的应用程序上单击parse来填写信息 我需要找到“TICKET-t0000000.0000-帐户安全性(公司名称…)”,然后只抓取“帐户安全性”部分。或者在第二次和第二次之间的任何一次抓取( 任何建议都是伟大的 下面是一个我尝试过的和正在使用的示例 try { $(".problem_description", context).val(clipdata.match

我正在使用我为帮助台编写的HTA应用程序做笔记

我一直在使用regex(我能做的最好的)来CTRL+A我们的票证弹出窗口,然后在我的应用程序上单击parse来填写信息

我需要找到
“TICKET-t0000000.0000-帐户安全性(公司名称…)”
,然后只抓取“帐户安全性”部分。或者在第二次和第二次之间的任何一次抓取(

任何建议都是伟大的

下面是一个我尝试过的和正在使用的示例

try { 
$(".problem_description", context).val(clipdata.match(/TICKET -.+[)]/)[0]);
 } 
catch (e) {
}
更新 我在这里尝试了一些建议,但结果似乎仍然给出了脚本中的整个字符串或错误


下面是使用正向查找的正则表达式:

(?<=TICKET\ -\ T\d{8}\.\d{4}\ -\ ).*\)

(?使用捕获组。在正则表达式中,可以使用括号来标记捕获组。因此,如果您定义一个模式,其中一部分标记要提取的文本,则可以将该部分括在括号中。大多数语言中,match函数返回的对象是一个允许您访问单个捕获组值的对象

试试我快速编的这个正则表达式:
/[^-]*-[^-]*-([^(]*)/

完整示例:
var matches=“TICKET-t0000000.0000-帐户安全(公司名称…)”match(/[^-]*-[^-]*-[^-]*-([^(]*)/)

您的值将与[1]
匹配

它说:从一开始,寻找任何不是破折号的东西,然后是破折号,然后是任何不是破折号的东西,然后是另一个破折号,然后是空格,然后将任何不是左括号的东西捕获到一个捕获组中


这将在捕获的组值末尾留下一个额外的空格。此外,如果值包含左括号,它将截断您的值。

请尝试{$(“.problem_description”,context).val(clipdata.match(/(?不要忘记第二个斜杠后的g。这似乎对我有用
const s=“票证-T00000000.0000-帐户安全性(公司名称…)”s.match(/(?我尝试了你的建议,我似乎越来越近了”)输出以前是从票证到空间的(抱歉,我启用了全局标志。我将更新我的答案。请尝试
匹配(/TICKET\s*-[^-]*-\s*([^()]*?)\s*\(/)[1]
,请参阅。组1包含该值。