仅在括号内替换逗号后的第一个空格直到最后一个空格
replace first whitespace until last whitespace after comma only within parentheses
在 Notepad++ 中,我想用引用键替换所有 references/citations。
例如,以下内容:
Bla bla bla bla (van Author et al., 2015).
Bla bla bla (Authorone, Authortwo, & Authorthree, 2016).
Bla bla (Authorone & Authortwo, 2017).
应该变成:
Bla bla bla bla (vanAuthor2015).
Bla bla bla (Authorone2016).
Bla bla (Authorone2017).
请注意,一行中也可能有多个引用,但没有嵌套的括号。
第一步,我将 (?<=\([a-z][a-z][a-z])\s
替换为空,将第一个引用从 (van Author et al., 2015)
变成 (vanAuthor et al., 2015)
。这也适用于 (von Author et al., 2015)
。
解释:
\s
去掉单白space
(?<=
\([a-z][a-z][a-z])
一个左括号和 3 个 lower-case 字母。
)
关闭 positive lookbehind.
但是,我正在为第 2 步而苦苦挣扎。 如何替换逗号后的第一个白色space到最后一个白色space \s.*,\s
只能在括号内?我阅读了许多标题为 "regex only in brackets" 的帖子,但我遇到的解决方案似乎并不适用于我的案例。
您可以使用
(\(\w+)(?:\s+(\w+))?[^)]*\s(\d+\))
并替换为 </code>。</p>
<p><strong>图案详情</strong>:</p>
<ul>
<li><code>(\(\w+)
- 第 1 组:一个 (
然后 1+ 个单词字符
(?:\s+(\w+))?
- 一个可选的 non-capturing 组匹配 1+ 个空格,然后 捕获 到第 2 组一个或多个单词字符
[^)]*
- )
以外的零个或多个字符
\s
- 空格
(\d+\))
- 第 3 组:1+ 位和 )
.
在 Notepad++ 中,我想用引用键替换所有 references/citations。
例如,以下内容:
Bla bla bla bla (van Author et al., 2015).
Bla bla bla (Authorone, Authortwo, & Authorthree, 2016).
Bla bla (Authorone & Authortwo, 2017).
应该变成:
Bla bla bla bla (vanAuthor2015).
Bla bla bla (Authorone2016).
Bla bla (Authorone2017).
请注意,一行中也可能有多个引用,但没有嵌套的括号。
第一步,我将 (?<=\([a-z][a-z][a-z])\s
替换为空,将第一个引用从 (van Author et al., 2015)
变成 (vanAuthor et al., 2015)
。这也适用于 (von Author et al., 2015)
。
解释:
\s
去掉单白space(?<=
\([a-z][a-z][a-z])
一个左括号和 3 个 lower-case 字母。)
关闭 positive lookbehind.
但是,我正在为第 2 步而苦苦挣扎。 如何替换逗号后的第一个白色space到最后一个白色space \s.*,\s
只能在括号内?我阅读了许多标题为 "regex only in brackets" 的帖子,但我遇到的解决方案似乎并不适用于我的案例。
您可以使用
(\(\w+)(?:\s+(\w+))?[^)]*\s(\d+\))
并替换为 </code>。</p>
<p><strong>图案详情</strong>:</p>
<ul>
<li><code>(\(\w+)
- 第 1 组:一个 (
然后 1+ 个单词字符
(?:\s+(\w+))?
- 一个可选的 non-capturing 组匹配 1+ 个空格,然后 捕获 到第 2 组一个或多个单词字符 [^)]*
- )
\s
- 空格(\d+\))
- 第 3 组:1+ 位和 )
.