Go语言中的正则表达式

Go语言的正则表达式 Go语言中的正则表达式功能强大,但也具有一定的复杂性。理解和掌握其基本语法和用法能够帮助我们在开发中更高效地处理文本数据。虽然正则表达式在很多情况下是非常有用的工具,但也需要注意其性能和可读性。希望通过本文的介绍,能帮助读者更好地使用Go语言进行正则表达式的操作。在实际开发中,正则表达式是一个强大的工具,但对于新手来说,也可能感到有些挑战。多进行练习和尝试,能帮助加深理解与应用。通过高效地利用正则表达式,我们能够快速处理和分析数据,使我们的应用程序更加强大。 阅读详情

Go语言通过regexp标准包为正则表达式提供官方支持

语法说明表达式实例
一般字符匹配自身abc      匹配abc
.匹配任意除换行符“\n”外的字符a.b
\转义字符a\.b    匹配a.b
[...]字符集(字符类),对应的位置可以是字符集中任意字符,也可以给出范围,如[abc]或[a-c],第一个字符为^则表示匹配除括号外其他的字符,所有特殊字符再字符集中都失去原有的特殊意义,在字符集中如果要用到]、-或^,则可以在前面加上反斜杠,或者把]、-放在第一个字符,把^放在非第一个字符。

a[bcd]e    匹配:abe

                           ace

                           ade

\d数字:[0-9]a\db              可以匹配a1b
\D非数字[^\d]a\Db              可以匹配abb
\s空白字符:[<空格>\t\r\n\f\v]a\sb             可以匹配a b
\S非空白符:[^\s]a\Sb            可以匹配abb
\w单词字符:[A-Za-z0-9_]a\wc               可以匹配abc
\W非单词字符:[^\w]a\Wc               可以匹配a c
*匹配前一个字符0次或无限次

abc*              可以匹配ab

                                    abccc

+前一个字符出现一次或者无限次

ab+               可以匹配ab

                                    abbbb

?匹配前一个字符一次或0次

abc?             可以匹配ab

                                    abc

{m}匹配前一个字符m次a{2}              可以匹配aa
{m,n}m和n可以省略,如果省略m,则匹配前一个字符0到n次,如果省略n,则匹配前一个字符m至无限次

a[1,2]c           可以匹配ac

                                     aac

\A匹配字符串开头\Aabc            可以匹配字符串abc
\Z匹配字符串末尾abc\Z            可以匹配字符串abc
\b匹配\w和\W之间a\b!bc            可以匹配a!bc
\B[^\b]a\Bbc            可以匹配abc
||代表左右表达式任意匹配一个,它总是先尝试匹配左边的表达式,一旦成功匹配则跳过匹配右侧的正则表达式。如果|没有被包括在()中,则他的范围是整个正则表达式abc|efg          可以匹配abc或efg
(...)

被括起来的表达式将作为分组,从表达式左边开始每遇到一个分组的左括号是“(”,编号+1。分组表达式作为一个整体后面可以接数量名词,表达式中的|只在该组中生效。

(abc){2}     可以匹配abcabc

a(123|456)b  可以匹配a456b

(?P<name>...)分组除了原有的编号外再指定一个额外的别名(?P<id>abc){2}  匹配abcabc
\<number>引号编号为<number>的分组匹配到的字符串

(\d)abc\1            可以匹配1abc1

(?P=name)引用别名为<name>的分组匹配到的字符串(?P<id>\d)abc(?P=id)  可以匹配1abc1
(?:...)(...)的不同版本,用于使用‘|’或后接数量词(?:abc){2}  匹配abcabc
^匹配字符串开头,再多行模式中匹配每一行的开头

^abc       匹配abc

 

$匹配字符串结尾,再多行模式中匹配每一行的结尾abc$         匹配abc
package main

import (
	"fmt"
	"regexp"
)

func main() {
	buf := "abc azc a7c a8c tac"

	//1)解释规则,他会解析正则表达式,如果成功返回解释器
	reg1 := regexp.MustCompile(`a.c`)
	if reg1 == nil { //解释失败,返回nil
		fmt.Println("err = ")
		return
	}

	//2)根据规则提取关键信息,-1表示匹配所有项,正数为匹配项数
	result := reg1.FindAllStringSubmatch(buf, -1)
	fmt.Println("result = ", result)
}

输出:

 

30、Go 语言中的字符串处理与正则表达式详解 本文详细介绍了Go语言中字符串处理和正则表达式的常用函数和方法。涵盖了字符串分割、修剪、替换、构建以及正则表达式的匹配、编译和模式查找等内容,帮助开发者高效地操作和处理字符串,提高开发效率和代码质量。 阅读详情

相关推荐

11、Go语言中的复合数据类型与正则表达式应用

本文深入介绍了Go语言中复合数据类型(如结构体切片)、正则表达式的应用以及CSV文件处理技术。通过代码示例详细讲解了如何动态创建结构体切片、使用正则表达式进行模式匹配和数据验证,以及如何读取和保存CSV文件。适合希望提升Go语言数据处理能力的开发者学习参考。

uran的专栏 59

Go语言 正则表达式

Go语言 正则表达式

代码改变世界 8949

30、Go语言中的数据处理、正则表达式与文件操作

本博客主要介绍了Go语言中的数据处理、正则表达式与文件操作。内容涵盖正则表达式的使用,包括MatchString和Compile函数,以及相关的搜索模式和应用示例。此外,还讲解了文件I/O操作,包括使用io/ioutil包读取文件和处理错误的方法,并介绍了panic函数的使用。博客还包括多个练习,帮助读者巩固所学知识,提升编程能力。

embedding5hiker的博客 74

Go 正则表达式

正则表达式是一种用于匹配和操作文本的强大工具,它使用特殊的字符和语法来定义模式。在 Golang 的 regexp 包中,使用的正则表达式语法是基于标准的 POSIX 正则表达式语法的一个子集。

快乐的搬砖的博客 3426

别再只会按按钮了!用NanoStat开源项目学ESP32硬件设计:BOOT与自动下载电路的避坑指南

本文通过NanoStat开源项目深入解析ESP32硬件设计中BOOT与自动下载电路的关键技术。从启动机制、电路设计陷阱到三极管选型,提供了一套完整的避坑指南和优化方案,帮助开发者提升设计可靠性和烧录效率。特别适合中级开发者学习ESP32硬件设计的精髓。

weixin_30296405的博客 439

主流 AI 插件 之一的 Copilot 介绍

Copilot 是微软推出的一款人工智能助手,旨在通过自然语言交互帮助您提升工作效率和创造力,覆盖多平台,提供智能问答、内容生成、代码辅助等功能。其核心定位为“日常 AI 伴侣”,旨在通过自然语言交互提升工作与生活效率。

u014695938的博客 6877

Go语言——正则表达式

概述: 概念: 正则表达式(regular expression)就是由元字符组成的⼀种字符串匹配的模式,使⽤这种模式可以实现对⽂本内容解析、校验、替换。 正则表达式的⽤途: 数据有效性验证:⽤户注册模块是应⽤正则表达式最集中的地⽅,主要是 ⽤于验证⽤户帐号、密码、EMAIL、电话号码、QQ号码、身份证号码、家庭地址等信息。如果填写的内容与正则表达式不匹配,可以断定填写的内容是不合乎要求或虚假的信息,那么在将表单提交到服务器进⼀步处理前,JavaScript程序会检查表单以确认⽤户填写的是有效信息

DTCloud 3407

基于激光雷达的目标跟随功能移植到自己的ROS机器人小车上

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、下载目标跟随的源码二、修改话题名称1.修改/cmd_vel话题名称2.修改/scan话题名称3.修改双电机正反转4.目标跟随功能测试 前言 本人尝试把github上的一个目标跟随项目移植到自己的机器人小车上,并且成功了,最终小车可以跟着人移动,在这里分享一下心得。基于激光雷达的目标跟随,通过获取激光雷达的信息,跟随最近的物体。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载目标跟随的源码 源码地址:https:

weixin_44574633的博客 4461

GO:正则表达式

正则表达式为高级的文本模式匹配、抽取、与/或文本形式的搜索和替换功能提供了基础。 简单地说,正则表达式(regex)是一些由字符和特殊符号组成的字符串,他们描述了模式的重复或者表述多个字符,于是正则表达式能按照某种模式匹配一些列有相似特征的字符串。 常用的元字符元字符: .匹配除换行符以外的任意字符 \w匹配字母或数字或下划线或汉字 \s匹配任意的空白符 \d匹配数字 \b匹配单词的开始或结束 ^匹配字符串的开始 $匹配字符串的结束 字符转义: 如果你想查找元...

qq_33690342的博客 7270

FOC控制必看:单/双/三电阻电流采样方案全对比(附NXP实战避坑指南)

本文深入对比了FOC控制中单电阻、双电阻和三电阻电流采样方案的优劣与适用场景,重点剖析了采样时序、窗口与ADC转换的工程挑战。针对NXP平台,提供了解决采样窗口过窄的实战方案与配置指南,帮助工程师根据成本与性能需求做出最优选择,并规避常见设计陷阱。

n2o3p4的博客 412

NMOS管和PMOS管做开关控制电路

NMOS管和PMOS管做开关控制电路

while(1) 3万+

深入掌握Go语言中的正则表达式与字符串处理

在Go语言中,正则表达式与字符串处理是强大的工具,能够大幅提升文本处理效率。本文通过详尽的代码示例,深入探讨了正则表达式的基本原理、如何匹配复杂模式(如日期时间和IPv4地址),以及字符串的常见操作方法。无论是处理复杂文本格式,还是进行字符串转换和提取,掌握这些技术都将为你的编程带来显著的提升。本文适合希望提高Go语言文本处理能力的开发者阅读。

一个被知识诅咒的人 2203

DAC8568实战指南:如何用STM32实现8通道DAC精准控制(附代码)

本文提供DAC8568与STM32结合的实战指南,详细解析8通道16位DAC的精准控制方法。内容涵盖硬件连接、SPI配置、驱动层构建、时序调试及多通道同步输出等关键步骤,并附有经过验证的HAL库驱动代码,帮助工程师快速解决实际项目中的通信与输出稳定性问题。

weixin_29175469的博客 744

Go语言中的正则表达式是如何使用的?

它们可以用于验证数据格式、搜索和替换文本中的特定模式,以及执行各种复杂的文本处理任务。这个示例演示了如何在Go语言中使用正则表达式进行匹配、查找、替换和分组操作。通过学习和实践,你可以掌握更多关于正则表达式的高级用法和技巧。在Go语言中,正则表达式是一个强大的工具,用于匹配、查找、替换文本中的特定模式。正则表达式中的括号用于创建分组,你可以使用这些分组来提取或操作文本中的特定部分。方法查找文本中所有匹配的子串。方法替换文本中所有匹配的子串。包提供了对正则表达式的支持。方法在文本中查找匹配的子串。

发现生活,分享智慧,一起成长! 655

华为云物联网系统开发(纯云端)外包方案及项目需求说明书

提供一个详细的需求文档(SRS,Software Requirements Specification),用于指导完全零基础的非专业负责人外包兼职专业技术人员开发一款基于华为云物联网平台、Astro低代码平台和Astro Canvas大屏设计的物联网系统,纯软件实现并支持下载部署。文档涵盖详细的软硬件组成清单(聚焦软件和云服务)、技术文档要求等,确保非专业人员在移交后能够复用、扩展和操作该系统。本文档简洁、全面,适合非技术背景的管理者使用,并基于华为云生态的内部实施部署。

hy行者勇哥的博客 618

036、算子映射:如何将ONNX算子映射到NPU硬件指令?

《算子映射:ONNX到NPU的转换艺术》 本文深入探讨了将ONNX算子映射到NPU硬件指令的技术挑战与实践经验。作者通过真实案例揭示了映射过程中的常见陷阱,如Reshape算子被错误映射导致分类错误。文章详细分析了三种映射策略(直接映射、拆分映射和融合映射),并强调映射表在编译器中的核心作用。特别针对动态形状、精度对齐等难题提供了解决方案,分享了编写映射表时的实用铁律,包括先优化后映射、严格单元测试等。最后指出,成功的算子映射需要在数学语义、硬件约束和性能优化之间找到精确平衡,这种看似枯燥的工作实则决定着N

m0_50546716的博客 185

go语言中的正则表达式

关于正则表达式的基础语法,这里就不赘述了 go中使用 以字符串text := " <a href="/test/2021-03-17/5436.html" target=########### ">"为例,我们需要提取字符串中href指向的地址 text := " <a href=\"/test/2021-03-17/5436.html\" target=########### \">" // 生成正则对象,类似Python中的re.compile // 特别说明,正则中的()是分

xiaoyanboke的博客 403

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

深入理解正则表达式及其在Go语言中的应用

通过深入掌握正则表达式的核心语法和Go语言的实现特性,开发者可以高效处理各种复杂的文本操作需求

weixin_73833086的博客 556

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

go语言中的正则表达式(黑马程序员)

    正则表达式是一种进行模式匹配和文本操纵的复杂而又强大的工具。虽然正则表达式比纯粹的文本匹配效率低,但是它却更灵活。按照它的语法规则,随需构造出的匹配模式就能够从原始文本中筛选出几乎任何你想要得到的字符组合。     Go语言通过regexp标准包为正则表达式提供了官方支持,如果你已经使用过其他编程语言提供的正则相关功能,那么你应该对Go语言版本的不会太陌生,但是它们之间也有一些小的差异,...

weixin_42094659的博客 1041

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Golang中的RegExp正则表达式用法指南

------------------------------------------------------------ Golang中的正则表达式 ------------------------------------------------------------ 用法: ------------------------------ 单一: ...

dianfu2892的博客 532

基础知识 - Golang 中的正则表达式

------------------------------------------------------------ Golang中的正则表达式 ------------------------------------------------------------ 用法: ------------------------------ 单一: ...

weixin_30642561的博客 683

探索Rex:Go语言中的正则表达式构建神器

探索Rex:Go语言中的正则表达式构建神器 在编程的世界里,正则表达式(Regex)是处理字符串的强大工具,但往往因其复杂性和难以阅读而让人望而却步。今天,我们要介绍的是一个专为Go语言开发者设计的正则表达式构建库——Rex,它以其卓越的可读性和灵活性,让正则表达式的编写变得更加简单和直观。 项目介绍 Rex是一个为Go语言设计的正则表达式构建器,旨在通过提供一种更加人性化和模块化的方式来构建正则...

gitblog_00321的博客 323

go正则表达式

http://docscn.studygolang.com/pkg/regexp/

不负韶华,加油! 137
上一篇: Go语言编程之字符串操作
下一篇: Go语言编程之json格式的编码和解码
random_w
博客等级 码龄9年 130粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值