正则表达式替换,反向引用替换字符 sublime text 3
Regular expression replace, back referencing replaced characters sublime text 3
我有一个包含以下行的文件:
A 123
B 323
每行以 A
或 B
开头,后跟一个空格和一个数字。
我正在尝试将其转换为
'C [a-z]*A 123'
每行。我在查找和替换中使用正则表达式。正则表达式 [AB] [0-9]*
可以毫无问题地选择所有行。我正在尝试用 'C [a-z]*'
替换它,它不会在替换的字符串中打印 </code> 和 returns:</p>
<pre><code>'C [a-z]*'
我错过了什么?
你的正则表达式 - [AB] [0-9]*
- 没有圆括号(即如果你想稍后在替换字符串中引用捕获的子文本,则没有必须存在的捕获组),因此,你没有得到预期结果。
您可以使用
(?m)^[AB][ ]([0-9]{3})
或者,如果数字是可选的,则使用 *
量词,这意味着 匹配 0 个或多个字符,如前面的子模式所定义的那样
(?m)^[AB][ ]([0-9]*)
并替换为
'C [a-z]*'
见demo
我有一个包含以下行的文件:
A 123
B 323
每行以 A
或 B
开头,后跟一个空格和一个数字。
我正在尝试将其转换为
'C [a-z]*A 123'
每行。我在查找和替换中使用正则表达式。正则表达式 [AB] [0-9]*
可以毫无问题地选择所有行。我正在尝试用 'C [a-z]*'
替换它,它不会在替换的字符串中打印 </code> 和 returns:</p>
<pre><code>'C [a-z]*'
我错过了什么?
你的正则表达式 - [AB] [0-9]*
- 没有圆括号(即如果你想稍后在替换字符串中引用捕获的子文本,则没有必须存在的捕获组),因此,你没有得到预期结果。
您可以使用
(?m)^[AB][ ]([0-9]{3})
或者,如果数字是可选的,则使用 *
量词,这意味着 匹配 0 个或多个字符,如前面的子模式所定义的那样
(?m)^[AB][ ]([0-9]*)
并替换为
'C [a-z]*'
见demo