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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Python 我能在数字中插入逗号吗?数字是字符串的一部分_Python_Regex - Fatal编程技术网

Python 我能在数字中插入逗号吗?数字是字符串的一部分

Python 我能在数字中插入逗号吗?数字是字符串的一部分,python,regex,Python,Regex,我想这样做。你知道一个好方法吗 import re if __name__ == '__main__': sample = "eventA 12:30 - 14:00 5200yen / eventB 15:30 - 17:00 10200yen enjoy!" i_want_to_generate = "eventA 12:30 - 14:00 5,200yen / eventB 15:30 - 17:00 10,200yen enjoy!" replaced =

我想这样做。你知道一个好方法吗

import re

if __name__ == '__main__':
    sample = "eventA 12:30 - 14:00 5200yen / eventB 15:30 - 17:00 10200yen enjoy!"
    i_want_to_generate = "eventA 12:30 - 14:00 5,200yen / eventB 15:30 - 17:00 10,200yen enjoy!"

    replaced = re.sub("(\d{1,3})(\d{3})", "$1,$2", sample)  # Wrong.
    print(replaced)  # eventA 12:30 - 14:00 $1,$2yen / eventB 15:30 - 17:00 $1,$2yen enjoy!

您的反向引用没有使用正确的符号。您还可以添加一个包含货币的正向前瞻性断言,以确保只有在“日元”发生变化后才会发生以下情况:

replaced = re.sub(r"(\d{1,3})(\d{3})(?=yen)", r"\1,\2", sample)  # Wrong.
print(replaced) 

# eventA 12:30 - 14:00 5,200yen / eventB 15:30 - 17:00 10,200yen enjoy!

您的反向引用没有使用正确的符号。您还可以添加一个包含货币的正向前瞻性断言,以确保只有在“日元”发生变化后才会发生以下情况:

replaced = re.sub(r"(\d{1,3})(\d{3})(?=yen)", r"\1,\2", sample)  # Wrong.
print(replaced) 

# eventA 12:30 - 14:00 5,200yen / eventB 15:30 - 17:00 10,200yen enjoy!
替换时使用\1而不是$1

选中:

使用\1代替$1进行替换


检查:

是否有超过3位的数字您不想在字符串中插入逗号?是否有超过3位的数字您不想在字符串中插入逗号?哇,我不得不使用\1而不是$1!我错了。非常感谢。哇,我不得不用\1而不是1美元!我错了。非常感谢。这个网站很有用。非常感谢。这个网站很有用。非常感谢你。