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

trying to crate a regular expression for string

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

我认为这会解决你的问题:(?=\s)*\w+(?=\s*:)

解释:

(?=\s)* - Searches for 0 or more spaces at the begging of the word without including them in the selection .

\w+ - Selects one or more word characters.

(?=\s*:) - Searches for 0 or more white spaces after the word followed by a column without including them in the selection.

这将捕获一个单词,如果它后面是 :[,允许在 : 前后有空格。

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

您需要设置正则表达式全局标志以捕获所有事件。

要在 : 之前匹配您提供的数据中的信息,您可以尝试 [A-Za-z]+(?= ?:) which matches upper or lowercase characters one or more times and uses a positive lookahead 断言后面是可选的白色 space 和 :

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

说明

  • 匹配一个或多个大写或小写字符[A-Za-z]+
  • 积极的前瞻性 (?: 断言以下内容
  • 白色可选space?
  • 是一个冒号,冒号后面的模式使用 \d+ 来匹配一个或多个数字(如果你想匹配一个有效的时间,你可以用一个匹配你的时间格式的模式来更新它):\[\(h\d+\){h\d+}]
  • 关闭正面前瞻)