试图为字符串创建正则表达式

时间:2018-01-19 11:05:53

标签: regex fme

我有一个像出租车一样的字符串:[(h19){h12}],HeavyTruck:[(h19){h12}]其中我想在"之前保留信息:"那是一辆出租车或重型卡车。有人可以帮我吗?

3 个答案:

答案 0 :(得分:0)

我认为这样可以解决您的问题:(?=\s)*\w+(?=\s*:)

说明:

  

(?= \ s)* - 在单词的乞讨处搜索0或更多空格,而不在选择中包含它们。

     

\ w + - 选择一个或多个单词字符。

     

(?= \ s * :) - 在单词之后搜索0或更多空格,而不在选择中包含它们。

答案 1 :(得分:0)

如果在:[之前和之后:允许空格,则会捕获一个单词。

[A-Za-z]+(?=\s*:\s*\[)

您需要设置正则表达式全局标记以捕获所有出现的内容。

答案 2 :(得分:0)

要在:之前匹配您提供的数据中的信息,您可以尝试[A-Za-z]+(?= ?:)一次或多次匹配大写或小写字符并使用positive lookahead断言以下内容是一个可选的空格和一个:

如果冒号后的模式应匹配,您可以尝试:[A-Za-z]+(?= ?:\[\(h\d+\){h\d+}])

<强>解释

  • 匹配一个或多个大写或小写字符[A-Za-z]+
  • 一个肯定的前瞻(?:,断言后面的内容
  • 可选空格?
  • 使用\d+匹配一个或多个数字的冒号后冒号是冒号(如果您想匹配有效时间,可以使用与时间格式匹配的模式更新此数字){{1} }
  • 关闭正向前瞻:\[\(h\d+\){h\d+}]