Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 为什么会发生这个简单的正则表达式错误?_Regex_Python 2.7 - Fatal编程技术网

Regex 为什么会发生这个简单的正则表达式错误?

Regex 为什么会发生这个简单的正则表达式错误?,regex,python-2.7,Regex,Python 2.7,我想看看是否可以在不使用rstrip的情况下从这些元素中剥离*x。我尝试了以下方法: 重新导入 导入时间 列表=[“3*x”、“2”、“4*x”、“1”、“3*x”、“0”] 新列表=[] 对于列表中的术语: 新列表扩展(关于sub(r'$(\*x'),,术语)) 打印新列表 时间。睡眠(4) 这在逻辑上是有意义的,因为每个包含*x的元素都将以它结尾,所以我使用了$。但我得到的输出如下: 但是如果我只是从上面的代码中去掉$,那么我就得到了正确的输出: ['3','2','4','1','3'

我想看看是否可以在不使用
rstrip
的情况下从这些元素中剥离
*x
。我尝试了以下方法:

重新导入
导入时间
列表=[“3*x”、“2”、“4*x”、“1”、“3*x”、“0”]
新列表=[]
对于列表中的术语:
新列表扩展(关于sub(r'$(\*x'),,术语))
打印新列表
时间。睡眠(4)
这在逻辑上是有意义的,因为每个包含
*x
的元素都将以它结尾,所以我使用了
$
。但我得到的输出如下:

但是如果我只是从上面的代码中去掉
$
,那么我就得到了正确的输出:

['3','2','4','1','3','0']

那么,为什么初始代码会给出如此错误的输出呢?
我对regex完全是新手,所以请尽量做到基本。

这个
$
表示字符串的结尾。您希望匹配字符串末尾的
*x
,因此需要编写
\*x$


另外,由于字符串是可编辑的,
l.extend('asd')
基本上会执行
l.append('a');l、 附加('s');l、 追加('d')
。您可能想使用
append
,而不是
extend

对不起,是我的错,我记得我意识到我使用的
$
不正确,当我按照您说的做时,它起了作用。但现在我的问题是,即使
$
被错误地使用,当我的代码运行时会发生什么?归功于person Blender:当正则表达式中的
$
是字面上的
$
时,或者如果它在表达式的末尾,则是字符串的结尾。@Brian OK,但这仍然不能解释为什么我会得到这种奇怪的输出。我的正则表达式是什么意思?