正则表达式:屁股字幕 - 匹配最后一个 \b 标签值
Regex : Ass subtitles - Match the last \b tag value
我想匹配 last \b 标签的数值,如果没有数字则为空字符串。
左边是字符串,右边是我要匹配的字符串:
\b Empty string
\b\b Empty string
\b1\b Empty string
\b\b1 1
\b\b\i1 Empty string
\b1\blur0 1
\b2\b10anana 10
\b2\b1 0anana 1
\b2\bbanana10 Empty string
- 具有数值的 B 标签应该return一个空字符串
- 在 ass 语言中,唯一以 b 字母开头的标签是 \blur \bord 和 \be
- \b 和数字之间可以有空格,但数字后面 不能 ,因此
\b2\b1 0anana
应该给 "1"
- 显然 bbanana 不是真正的 ass 标签,但是 ass 库认为以 \b 开头的标签是 \b 标签,只要它不是 blur/bord/be.
- 此外,重要的精度:\b 标签可以是“\b”或“\b”(尽可能多的空格)
- 我在 regex101
我目前受困于这个正则表达式 https://regex101.com/r/0TZeSn/1
(?<=\\s*b\s*)\d+(?!(?=\b))|(?<=\b)(?!.*\b).*?(?=\w|\)
来之不易
对于没有空匹配的匹配,您可以使用:
(?<=\ *b *)(?!\S*\b *(?!lur|ord|e))\d+
说明
(?<=\ *b *)
正面回顾,断言 \b
与左侧之间的可选空格
(?!
负前瞻,断言不向右
\S*\b *(?!lur|ord|e)
匹配可选的非空白字符后跟 \b
而不是直接跟 lur
ord
或 e
)
关闭前瞻
\d+
匹配 1+ 个数字
看到一个regex demo.
要同时获得空匹配,您可以匹配可选数字并在当前位置后直接断言不是 lur
ord
或 e
并且在匹配 [=13= 后也不会断言]
(?<=\ *b *)(?!lur|ord|e|\S*\b *(?!lur|ord|e))\d*
再看一个regex demo.
我想匹配 last \b 标签的数值,如果没有数字则为空字符串。
左边是字符串,右边是我要匹配的字符串:
\b Empty string
\b\b Empty string
\b1\b Empty string
\b\b1 1
\b\b\i1 Empty string
\b1\blur0 1
\b2\b10anana 10
\b2\b1 0anana 1
\b2\bbanana10 Empty string
- 具有数值的 B 标签应该return一个空字符串
- 在 ass 语言中,唯一以 b 字母开头的标签是 \blur \bord 和 \be
- \b 和数字之间可以有空格,但数字后面 不能 ,因此
\b2\b1 0anana
应该给 "1" - 显然 bbanana 不是真正的 ass 标签,但是 ass 库认为以 \b 开头的标签是 \b 标签,只要它不是 blur/bord/be.
- 此外,重要的精度:\b 标签可以是“\b”或“\b”(尽可能多的空格)
- 我在 regex101
我目前受困于这个正则表达式 https://regex101.com/r/0TZeSn/1
(?<=\\s*b\s*)\d+(?!(?=\b))|(?<=\b)(?!.*\b).*?(?=\w|\)
来之不易
对于没有空匹配的匹配,您可以使用:
(?<=\ *b *)(?!\S*\b *(?!lur|ord|e))\d+
说明
(?<=\ *b *)
正面回顾,断言\b
与左侧之间的可选空格(?!
负前瞻,断言不向右\S*\b *(?!lur|ord|e)
匹配可选的非空白字符后跟\b
而不是直接跟lur
ord
或e
)
关闭前瞻\d+
匹配 1+ 个数字
看到一个regex demo.
要同时获得空匹配,您可以匹配可选数字并在当前位置后直接断言不是 lur
ord
或 e
并且在匹配 [=13= 后也不会断言]
(?<=\ *b *)(?!lur|ord|e|\S*\b *(?!lur|ord|e))\d*
再看一个regex demo.