两个PCRE正则表达式
问题描述:
我需要把这种格式[url]3a7cHPy04s8[/youtube]
两个PCRE正则表达式
分为:[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/
谢谢你r求助!
答
比赛:
~\[url\](\w+)\[/youtube\]~
或者:
~https?://(?:www\.)?youtube\.com/watch\?\S*?v=(\w+)\S*~
并将其替换:
[media=youtube]\1[/media]
+1
是两个替代! – Unihedron 2014-09-24 23:39:09
答
使用这个表达式替换:
(?|\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
是域变量? – sln 2014-09-24 23:01:36
不,我不这么认为 – 2014-09-25 02:59:33