我需要将此格式设为[url]3a7cHPy04s8[/youtube]
进入:[media=youtube]3a7cHPy04s8[/media]
和此格式https://www.youtube.com/watch?v=h_JfHLs2Nc4
进入:[media=youtube]h_JfHLs2Nc4[/media]
它们将用于此工具 https://xenforo.com/community/resources/post-content-find-replace.1549/
感谢您的帮助!
答案 0 :(得分:1)
匹配度:
~\[url\](\w+)\[/youtube\]~
或者:
~https?://(?:www\.)?youtube\.com/watch\?\S*?v=(\w+)\S*~
并替换为:
[media=youtube]\1[/media]
答案 1 :(得分:1)
使用此正则表达式替换:
(?|\Q[url]\E([\w-]+)\Q[/youtube]\E|https?:\Q//\E(?:youtu\.be\/|(?:www\.)?\Qyoutube.com/watch?v=\E)([\w-]+))
替换为:
[media=youtube]\1[/media]
仅作为奖励,它也适用于http://youtu.be/(id)
!
请参阅regex demo here。
说明:
/(?| # Branch Reset: Use persistent group ordering
\Q[url]\E
# Literal "[url]"
([\w-]+)
# Stuff that can be within a video ID
\Q[/youtube]\E
# Closing tag
| # "or" Alternation, reset group ordering
https?:\Q//\E
# http(s)://
(?:
youtu\.be\/
| # youtu.be or (www.)youtube.com/watch?v=
(?:www\.)?\Qyoutube.com/watch?v=\E
)
([\w-]+)
# Stuff that can be within a video ID
)/gx