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

时间:2018-10-11 13:47:29

标签: regex

我正在使用为服务台编写的HTA应用程序做笔记。

我一直在使用正则表达式(尽我所能)CTRL + A弹出票证,然后单击我的应用程序上的parse以填写信息

我需要找到"TICKET - T00000000.0000 - Account Security (Company Name...)",并且只抓住“帐户安全性”部分。或者为了将来抢在2号和(

任何建议都是伟大的

这是我尝试过和正在使用的示例

try { 
$(".problem_description", context).val(clipdata.match(/TICKET -.+[)]/)[0]);
 } 
catch (e) {
}

更新 我在这里尝试了一些建议,但结果似乎仍然可以为我提供整个字符串或脚本中的错误。

enter image description here

2 个答案:

答案 0 :(得分:0)

以下是正则表达式的正则表达式:

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

这是regex101的解释:https://regex101.com/r/6BN16e/1

查询有效地说匹配“ TICKET-T(8 digits ..(4 digits)-”。您当然可以根据自己的规范进行调整。

以下是有关先行和后行的教程,可能会对您有所帮助:https://www.regular-expressions.info/lookaround.html

答案 1 :(得分:0)

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

尝试我很快组成的这个正则表达式:/[^-]*-[^-]*- ([^(]*)/

完整示例:var matches = "TICKET - T00000000.0000 - Account Security (Company Name...)".match(/[^-]*-[^-]*- ([^(]*)/)

您的值将在matches[1]中。

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

这将在捕获的组值的末尾保留一个额外的空间。另外,如果您的值包含左括号,则会截断您的值。