双括号中子表达式的记事本++正则表达式ID
Notepad++ regexp ID of the sub-expressions in the double parentheses
我正在尝试在 Notepad++ 中查找这样的字符串:
'<a href="/mp3files/cards/Sentence With any Number of Words.mp3"></a>',
并将它们转换成这样:
'<a href="/mp3files/cards/sentence-with-any-number-of-words.mp3"></a>',
我创建了一个正则表达式来裁剪以 cards/
开头并以 </a>
结尾的字符串:
(cards/)([^\s]{1,50})(([\s\.\?\!\-\,])(\w{1,50}))+(\.mp3"></a>)
或另一种方法:
(cards/)([^\s]{1,50})([\s\.\?\!\-\,]{0,})([^\s]{1,50})
两者都可以很好地用于搜索,但我找不到替代品。
问题是句子中的单词数量可能会有所不同。
而且我无法获取双括号中的子表达式的ID。
下面的替换格式:...
是行不通的,因为我无法得到双括号中子表达式的正确ID。
我试图 google 该主题,但找不到任何内容。非常感谢任何建议,link 或最好的完整替换表达式。
这会将 /cards/
之后的所有空格替换为连字符并将文件名小写。
- Ctrl+H
- 查找内容:
(?:href="/mp3files/cards/|\G)\K(?!\.mp3)(\S+)(?:\h+|(\.mp3))
- 替换为:
\L(?2:-)
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
(?: # non capture group
href="/mp3files/cards/ # literally
| # OR
\G # restart fro last match position
) # end group
(?!\.mp3) # negative lookahead, make sure we haven't ".mp3" after this position
\K # forget all we have seen until this position
(\S+) # group 1, 1 or more non spaces
(?: # non capture group
\h+ # 1 or more horizontal spaces
| # OR
(\.mp3) # group 2, literally ".mp3"
) # end group
替换:
\L # lowercase content of group 1
(?2 # if group 2 exists (the extension .mp3)
# use it
: # else
- # put a hyphen
) # endif
截图(之前):
截图(后):
我正在尝试在 Notepad++ 中查找这样的字符串:
'<a href="/mp3files/cards/Sentence With any Number of Words.mp3"></a>',
并将它们转换成这样:
'<a href="/mp3files/cards/sentence-with-any-number-of-words.mp3"></a>',
我创建了一个正则表达式来裁剪以 cards/
开头并以 </a>
结尾的字符串:
(cards/)([^\s]{1,50})(([\s\.\?\!\-\,])(\w{1,50}))+(\.mp3"></a>)
或另一种方法:
(cards/)([^\s]{1,50})([\s\.\?\!\-\,]{0,})([^\s]{1,50})
两者都可以很好地用于搜索,但我找不到替代品。 问题是句子中的单词数量可能会有所不同。 而且我无法获取双括号中的子表达式的ID。
下面的替换格式:...
是行不通的,因为我无法得到双括号中子表达式的正确ID。
我试图 google 该主题,但找不到任何内容。非常感谢任何建议,link 或最好的完整替换表达式。
这会将 /cards/
之后的所有空格替换为连字符并将文件名小写。
- Ctrl+H
- 查找内容:
(?:href="/mp3files/cards/|\G)\K(?!\.mp3)(\S+)(?:\h+|(\.mp3))
- 替换为:
\L(?2:-)
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
(?: # non capture group
href="/mp3files/cards/ # literally
| # OR
\G # restart fro last match position
) # end group
(?!\.mp3) # negative lookahead, make sure we haven't ".mp3" after this position
\K # forget all we have seen until this position
(\S+) # group 1, 1 or more non spaces
(?: # non capture group
\h+ # 1 or more horizontal spaces
| # OR
(\.mp3) # group 2, literally ".mp3"
) # end group
替换:
\L # lowercase content of group 1
(?2 # if group 2 exists (the extension .mp3)
# use it
: # else
- # put a hyphen
) # endif
截图(之前):
截图(后):