Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
从这个可能的输入中,我想处理粗体文本:
类型:惊悚, 冒险, 动作, 2012 类型:惊悚, 冒险, 动作
类型:惊悚, 冒险, 动作, 2012
类型:惊悚, 冒险, 动作
我做了这样的事情(?<=Genre: ).*(?=(, \d{4})?)
(?<=Genre: ).*(?=(, \d{4})?)
我的问题是我把这部分放在(, \d{4})?希望因为有匹配", 2012"它会在这一点停止但它不会,它只是忽略匹配......
(, \d{4})?
", 2012"
有什么建议吗?
.*是贪婪的,所以它会消耗它可以消耗的任何东西。由于带有数字的最后一部分是可选的,因此所有这些都被.*.
.*
可能有一种更有说服力的方法,但可能只有两个正则表达式:
(?<=Genre: ).*(?=(, \d{4}))|(?<=Genre: ).*
如果我是对的,第一个将与数字匹配,但如果失败,它将落入更一般的情况。
编辑:实际上,它可能会执行以下操作:
(?<=Genre: ).*?(?=(, \d{4})|$)
这样.*,它就不是贪婪的,但它必须消耗直到数字或字符串末尾的所有内容。