标签: backreference

Python:\number在re.sub中的反向引用

我正在尝试使用python的re.sub函数来替换一些文本.

>>> import re
>>> text = "<hi type=\"italic\"> the></hi>"
>>> pat_error = re.compile(">(\s*\w*)*>")
>>> pat_error.search(text)
<_sre.SRE_Match object at 0xb7a3fea0>
>>> re.sub(pat_error, ">\1", text)
'<hi type="italic">\x01</hi>'
Run Code Online (Sandbox Code Playgroud)

之后文本的值应该是

"<hi type="italic"> the</hi>"
Run Code Online (Sandbox Code Playgroud)

python regex backreference

0
推荐指数
1
解决办法
8344
查看次数

我如何忽略 $1 替换 javascript 中的反向引用

我有一个用户可以随时编辑的字符串,以及一个正在对该字符串进行的正则表达式,将其添加到 xml 中,然后保存它,但他们可以将 '$1' 添加到字符串中。我只想保存文本“$1”,但我必须对 $1 所在的同一个字符串执行正则表达式。它每次都用正则表达式中的一个字符替换 $1。

如何查找并替换此字符串中的 $1?

正在发生的事情的例子:

string1 = '<item id="1">i have $100</item>'

regexp = new RegExp('<item id="1"([^<]|<[^\/]|<\/[^i]|<\/i[^t]|<\/it[^e]|<\/ite[^m]|<\/item[^>])*<\/item>');

data = '<data><item id="1">i have no money</item><item id="2">i have no money</item></data>'

data = data.replace(regexp, string1);
Run Code Online (Sandbox Code Playgroud)

结果

<data><item id="1">i have >00</item><item id="2">i have no money</item></data>
Run Code Online (Sandbox Code Playgroud)

javascript regex backreference replace

0
推荐指数
1
解决办法
1052
查看次数

Python中的反向引用:HTML字符串的findall()方法输出

我试图在Python中学习一些正则表达式.以下不会产生我预期的输出:

with open('ex06-11.html') as f:
    a = re.findall("<div[^>]*id\\s*=\\s*([\"\'])header\\1[^>]*>(.*?)</div>", f.read())
    # output: [('"', 'Some random text')]
Run Code Online (Sandbox Code Playgroud)

我期待的输出(相同的代码,但没有反向引用):

with open('ex06-11.html') as f:
    print re.findall("<div[^>]*id\\s*=\\s*[\"\']header[\"\'][^>]*>(.*?)</div>", f.read())
    # output: ['Some random text']
Run Code Online (Sandbox Code Playgroud)

问题实际上归结为:为什么我的第一个输出中有一个引号,而不是我的第二个?我以为([abc]) ... //1== [abc] ... [abc].我不对吗?

html python regex backreference python-2.7

0
推荐指数
1
解决办法
1043
查看次数

Powershell 替换为反向引用和局部变量

我正在尝试使用串联后向引用和局部变量的字符串替换模式:

(Get-Content $nuspecPath) | Foreach-Object {$_ -replace "(<version>).+(<\/version>)", "`$1$version`$2"} | Set-Content $nuspecPath   
Run Code Online (Sandbox Code Playgroud)

预期的: <version>2.0-preview</version>

实际的: 2.0-preview</version>

但是,如果我在像“ $1 $version$2”这样的变量之间添加空格,我会得到<version> 2.0-preview </version>预期的结果。

想法?

谢谢,丹

regex powershell backreference

0
推荐指数
1
解决办法
2071
查看次数

Java String.replace所有带命名组的反向引用

如何在Java String.replaceAll方法中引用命名捕获组?

作为我正在尝试做的简化示例,请说我有正则表达式

\{(?<id>\d\d\d\d):(?<render>.*?)\}
Run Code Online (Sandbox Code Playgroud)

表示字符串中的标记.字符串中可以有多个标记,我想用"render"捕获组的内容替换所有标记.

如果我有一个字符串

String test = "{0000:Billy} bites {0001:Jake}";
Run Code Online (Sandbox Code Playgroud)

并希望得到一个结果"Billy bites Jake",我知道我可以完成我的目标

test.replaceAll(tagRegex, "$2")
Run Code Online (Sandbox Code Playgroud)

但我希望能够使用类似的东西

test.replaceAll(tagRegex, "$render")`
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?用"$render"我得到IllegalArgumentException: Illegal group reference.

java regex backreference named-captures

0
推荐指数
1
解决办法
626
查看次数

尝试打印匹配表达式时使用 sed 的无效引用 \1

在我开始之前,我已经看过这个问题,但似乎解决方案是他们没有转义正则表达式中的括号。我遇到了同样的错误,但我没有对正则表达式进行分组。我想要做的是在 lastlog 文件中找到所有名称/用户名并仅返回 UN。

我拥有的:

    s/^[a-z]+ |^[a-z]+[0-9]+/\1/p
Run Code Online (Sandbox Code Playgroud)

我已经看到许多解决方案展示了如何在 awk 中执行此操作,这对于将来参考非常有用,但我想使用 sed 来执行此操作。

编辑例如输入:

    dzhu             pts/15   n0000d174.cs.uts Wed Feb 17 08:31:22 -0600 2016
    krobbins                                   **Never logged in**
    js24                                       **Never logged in**
Run Code Online (Sandbox Code Playgroud)

backreference sed

0
推荐指数
1
解决办法
3894
查看次数