python中的regex字符串显然很简单,但我如何才能做到这一点



我正在尝试为Python编写一个regex字符串,它可以帮助我工作,但我需要您的帮助。从字面上讲,Slinger(初学者(的报酬应该在13.99英镑/小时到15.99英镑/H之间,我是一个初学者,对此一无所知……问题是Slinger这个词可以在任何其他上下文中使用,我只想在不止一个条件适用时被触发。(例如,Slinger和13.50应该触发,但当单词Slinger单独出现时不应该触发(。我不知怎么想到了这个:

((S/S)|(Slinger/Signaller)|(Slinger)|(Banksman)|(£b1[4-6]b)|(b1[4-6]b£)|(b1[4-6]p/hb))

但它还不够好,不足以满足我的需要,因为它会触发任何诽谤文本。非常感谢您的帮助。提前谢谢。

(编辑(

非常感谢你们的及时回答。为了让自己有更好的想法,我想给你举个例子,所以请看下一句话(信息(:

"伦敦市中心正在进行的工作需要吊索。我们目前正在为邦德街的一个项目寻找一名CPCS抛油工,必须有在建筑工地工作的经验(蓝卡(,并且是一名熟练的抛油工。初级弹弓手(红牌(的工资为13.99英镑/小时至15.99英镑/时(139.99-159.99英镑/天((10小时课程(,熟练弹弓手的工资为16.00英镑/小时到18.00英镑(160英镑-180英镑/天。欲了解更多信息,请联系电话:02131615139"(有时费率以英镑/小时为单位,有时以英镑/天为单位。

成千上万条这样的信息写在我们的群里,有不同的报酬率,还有关于投掷者的讨论(总之(。我想过滤(匹配(每一条包含Slinger且费率在13.99/小时至15.99/小时(139.99-159.99英镑/天(之间的消息,将其归入"beginer Slinger类别";每一条含有Slinger并费率在16.00/小时至18.00/小时(160英镑至180英镑/天。我希望这能帮助你为自己创造一个我想要实现的目标,任何帮助都将不胜感激。非常感谢各位,确保安全。

您可以使用

b(?:S/S|Slinger/Signaller|Slinger|Banksman) £(?:13.99|1[45](?:.d{2})?)/Hb

解释

  • b字边界
  • (?:S/S|Slinger/Signaller|Slinger|Banksman)匹配任意一个替换项和一个空间
  • £文字匹配
  • (?:非捕获组
    • 13.99匹配13.99
    • |
    • 1[45](?:.d{2})?将14或15与可选小数部分匹配,以匹配2位数字。(如果要匹配1或2位数字,请使用d{1,2}(
  • )关闭组
  • /H字面匹配
  • b字边界

Regex演示

相关内容

最新更新