我有这种格式的字符串:
MY TITLE OF STRING 5 - EP.2
MY TITLE OF STRING 6 - EP.3
但在某些情况下,此规则会跳转,我的字符串会变为这样:
MY TITLE OF STRING 5- EP.2
MY TITLE OF STRING 6-EP.3
这是我的正则表达式
(\d*)\s-\s.*?EP.\s*(\d*)
但仅适用于标准情况。
答案 0 :(得分:1)
您可以使用\s
量词使第一个*
匹配出现零次或多次:
(\d+)\s*-\s*EP.\s*(\d+)
^
请参阅regex demo
如果您需要在-
和EP
之间尽可能少地匹配任何0 +字符,请在模式中重新插入.*?
(\d+)\s*-\s*.*?EP.\s*(\d+)
答案 1 :(得分:1)
只是为了好玩,因为Wiktor已经给出了一个有效的答案,这个也可以工作:
(\d+)[\s-]+EP\.(\d+)$
。
<强>解释强>
(\d+)
至少一位数
[\s-]+
一个或多个连字符或空格
EP\.
接着是EP。
(\d+)$
至少一个数字,直到字符串结尾