相关疑难解决方法(0)

参考 - 这个正则表达式意味着什么?

这是什么?

这是常见问答的集合.这也是社区Wiki,因此每个人都被邀请参与维护.

为什么是这样?

患的是给我泽码型的问题和答案不佳,没有解释.此参考旨在提供质量问答的链接.

范围是什么?

此引用适用于以下语言:,,,,,,.

这可能过于宽泛,但这些语言共享相同的语法.对于特定功能,它背后的语言标签,例如:

  • 什么是正则表达式平衡组?

regex

52
推荐指数
1
解决办法
11万
查看次数

Python正则表达式替换:从数字中单独反向引用

在正则表达式替换模式中,反向引用看起来像\1.如果要在该反向引用后包含一个数字,这将失败,因为该数字被认为是反向引用号的一部分:

# replace all twin digits by zeroes, but retain white space in between
re.sub(r"\d(\s*)\d", r"0\10", "0 1")
>>> sre_constants.error: invalid group reference
Run Code Online (Sandbox Code Playgroud)

替换模式r"0\1 0"可以正常工作,但在失败的示例中,反向引用\1被解释为\10.

如何将数字'0'\1之前的反向引用分开?

python regex backreference

16
推荐指数
2
解决办法
3793
查看次数

python无效组引用\ 10\2

如果我想在第一个组引用后插入"0",那么语法是什么?

import re
re.sub("(..)(..)", "\\1x\\2", "toto")
toxto
re.sub("(..)(..)", "\\10\\2", "toto")
sre_constants.error: invalid group reference
Run Code Online (Sandbox Code Playgroud)

错误,因为\ 10被解释为第10个参考组(这就是为什么在ed()中,组引用在[1-9]间隔中).

在上面的例子中,如何获得"to0to"?

python regex

6
推荐指数
1
解决办法
1746
查看次数

正则表达式在捕获组后用数字替换?

我有这样的正则表达式模式:

([0-9]*)xyz
Run Code Online (Sandbox Code Playgroud)

我希望做这样的替换:

$10xyz
Run Code Online (Sandbox Code Playgroud)

问题是,它$1是一个捕获组,而这0只是我想要替换的数字.但正则表达式认为我要求捕获组$10而不是$1之后的零.

如何引用捕获组并立即使用数字跟随它?

在这种情况下使用JavaScript.

更新如下所述,我的代码确实运行良好.我使用的正则表达式测试程序被意外设置为PCRE而不是JavaScript.

regex

5
推荐指数
1
解决办法
861
查看次数

正则表达式组引用错误

p = r'([\,|\.]\d{1}$)'
re.sub(p, r"\1", v)
Run Code Online (Sandbox Code Playgroud)

工作,但我想在捕获组中添加零,而不是用捕获组'10'替换,我该怎么做?

re.sub(p, r"\10", v)
Run Code Online (Sandbox Code Playgroud)

失败:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 151, in sub
    return _compile(pattern, flags).sub(repl, string, count)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 275, in filter
    return sre_parse.expand_template(template, match)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sre_parse.py", line 802, in expand_template
    raise error, "invalid group reference"
sre_constants.error: invalid group reference
Run Code Online (Sandbox Code Playgroud)

python regex

4
推荐指数
1
解决办法
2759
查看次数

反向引用后直接的数字值

我试图re.sub在数字反向引用后直接使用带有数值的字符串.也就是说,如果我的替换值是15.00和我的反向引用\1,我的替换字符串将如下所示:

\115.00,正如预期的那样,error: invalid group reference因为它认为我的反引用组是115.

例:

import re

r = re.compile("(Value:)([-+]?[0-9]*\.?[0-9]+)")

to_replace = "Value:0.99" # Want Value:1.00

# Won't work:
print re.sub(r, r'\11.00', to_replace)

# Will work, but don't want the space
print re.sub(r, r'\1 1.00', to_replace)
Run Code Online (Sandbox Code Playgroud)

是否有一个不涉及的解决方案re.sub

python regex

4
推荐指数
1
解决办法
212
查看次数

在Python字符串替换中使用星号字符(*)作为小丑?

我是 python 的初学者,目前正在努力解决一些问题:

我想在一个字符串中进行一些更改。是否可以使用单个星号 (*) 作为几个字符的替代小丑?例如我有一个字符串:

string1 = "The new year is about to become an old year"
Run Code Online (Sandbox Code Playgroud)

我想使用这种模式来查找:

find:
*year*year*

replace it with:
*century*one*
Run Code Online (Sandbox Code Playgroud)

这将导致:

string1 = "The new century is about to become an old one"
Run Code Online (Sandbox Code Playgroud)

意思是“*”字符将替换“year”和“year”单词之间和之前的所有字符。那可能吗?

python regex string replace

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

regex ×7

python ×5

backreference ×1

replace ×1

string ×1