当前位置: 首页 > news >正文

网站的搜索功能/佛山网站营销推广

网站的搜索功能,佛山网站营销推广,做盗版网站,网络推广优化是干啥的正则表达式(9):扩展正则表达式 小结 本博文转载自 前文中一直在说,在Linux中,正则表达式可以分为”基本正则表达式”和”扩展正则表达式”。 我们已经认识了”基本正则表达式”,现在,我们来认…

正则表达式(9):扩展正则表达式

      • 小结

本博文转载自

前文中一直在说,在Linux中,正则表达式可以分为”基本正则表达式”和”扩展正则表达式”。

我们已经认识了”基本正则表达式”,现在,我们来认识一下”扩展正则表达式”。

有了之前的基础,学习”扩展正则表达式”简直不要太轻松。

之前说过,有些符号是通用的,不管是在”基本正则表达式”中,还是在”扩展正则表达式”中,这些通用的符号所表达的意思都是相同的。

那么,我们先来看看哪些符号是通用的,看完之后你会信心大增,如下字符都是通用的:

.   表示任意单个字符。
*  表示前面的字符连续出现任意次,包括0次。
.* 表示任意长度的任意字符,与通配符中的*的意思相同。
\  表示转义符,当与正则表达式中的符号结合时表示符号本身。
[  ]表示匹配指定范围内的任意单个字符。
[^  ]表示匹配指定范围外的任意单个字符。[[:alpha:]]  表示任意大小写字母。
[[:lower:]]  表示任意小写字母。
[[:upper:]]  表示任意大写字母。
[[:digit:]]  表示0到9之间的任意单个数字(包括0和9)。
[[:alnum:]]  表示任意数字或字母。
[[:space:]]  表示任意空白字符,包括"空格"、"tab键"等。
[[:punct:]]  表示任意标点符号。
[^[:alpha:]]  表示单个非字母字符。
[^[:lower:]]  表示单个非小写字母字符。
[^[:upper:]]  表示单个非大写字母字符。
[^[:digit:]]  表示单个非数字字符。
[^[:alnum:]]  表示单个非数字非字母字符。
[^[:space:]]  表示单个非空白字符。
[^[:punct:]]  表示单个非标点符号字符。
[0-9]与[[:digit:]]等效。
[a-z]与[[:lower:]]等效。
[A-Z]与[[:upper:]]等效。
[a-zA-Z]与[[:alpha:]]等效。
[a-zA-Z0-9]与[[:alnum:]]等效。
[^0-9]与[^[:digit:]]等效。
[^a-z]与[^[:lower:]]等效。
[^A-Z]与[^[:upper:]]等效
[^a-zA-Z]与[^[:alpha:]]等效
[^a-zA-Z0-9]与[^[:alnum:]]等效^:表示锚定行首,此字符后面的任意内容必须出现在行首,才能匹配。
$:表示锚定行尾,此字符前面的任意内容必须出现在行尾,才能匹配。
^$:表示匹配空行,这里所描述的空行表示"回车",而"空格"或"tab"等都不能算作此处所描述的空行。
^abc$:表示abc独占一行时,会被匹配到。
\<或者\b :匹配单词边界,表示锚定词首,其后面的字符必须作为单词首部出现。
\>或者\b :匹配单词边界,表示锚定词尾,其前面的字符必须作为单词尾部出现。
\B:匹配非单词边界,与\b正好相反。

上述符号,在基本正则表达式中与扩展正则表达式中的用法完全相同。

有没有感觉,70%都是通用的,那么我们来动手试试。

在总结grep命令时,我们提到过,grep命令默认只支持基本正则表达式,如果想要让grep命令能够支持扩展的正则表达式,则需要使用”-E”选项,示例如下

在这里插入图片描述

上图中,grep命令使用了”-E”选项,表示grep命令会把”正则表达式”中的符号当成”扩展正则表达式”去理解,而不再使用默认的”基本正则表达式”。

但是由于”[A-Z]”是通用的,所以,不管是否使用扩展正则表达式,”[A-Z]”都表示单个大写字母。

刚才说过,70%的符号都是通用的,那么剩下的30%呢?

其实,剩下的30%也都差不多,与基本正则表达式相比,反而更加简单了,不信?我们就来看看。

在基本正则表达式中,{n} 表示前面的字符连续出现n次,将会被匹配到。

在扩展正则表达式中,{n} 表示前面的字符连续出现n次,将会被匹配到。

在基本正则表达式中,( ) 表示分组,(ab) 表示将ab当做一个整体去处理。

在扩展正则表达式中,( ) 表示分组,(ab) 表示将ab当做一个整体去处理。

在写法上,”扩展正则表达式”的写法是不是更加简练呢?示例如下

在这里插入图片描述

如上图所示,当使用”扩展正则表达式”时,在”书写”方面,反而省力不少,最终匹配到的文本却是相同的,是不是很方便?

看完了上述示例,我想你对扩展正则表达式应该已经有了一个初步的印象了。

那么,我们就来介绍一下,有哪些符号在”扩展正则表达式”中变得更加简练了。

在扩展正则表达式中:

( ) 表示分组

(ab) 表示将ab当做一个整体去处理。

\1 表示引用整个表达式中第1个分组中的正则匹配到的结果。

\2 表示引用整个表达式中第2个分组中的正则匹配到的结果。

? 表示匹配其前面的字符0或1次

  • 表示匹配其前面的字符至少1次,或者连续多次,连续次数上不封顶。

{n} 表示前面的字符连续出现n次,将会被匹配到。

{x,y} 表示之前的字符至少连续出现x次,最多连续出现y次,都能被匹配到,换句话说,只要之前的字符连续出现的次数在x与y之间,即可被匹配到。

{,n} 表示之前的字符连续出现至多n次,最少0次,都会陪匹配到。

{n,}表示之前的字符连续出现至少n次,才会被匹配到。

看了上述总结以后,是不是已经想要放弃使用”基本正则表达式”了呢?因为与之相比,扩展正则表达式才更符合我们这些懒人的习惯,而且,扩展正则表达式的可读性也更高,毕竟很多符号少了前面的”\”,可读性就变强了。

扩展正则表达式中,还有一个常用的符号,它就是”|” (在基本正则表达式中使用 “\|”, 前面没有讲, 这里补上)

注:按住键盘的 “shift键” 和 “\”键 ,就可以打出”|”

“|”在扩展正则表达式中,表示”或”,这样说不容易理解,我们来看个小例子,就能明白,示例文件内容如下。

在这里插入图片描述

如果,我们想要从上例文本中找到以”com”结尾的行,我们该怎么办呢?我们可以使用如下命令。

在这里插入图片描述

同理,如果我们想要从示例文本中找出以”net”结尾的行,可以使用如下命令。

在这里插入图片描述

那么,如果我们想要从示例文本找出,以”com”结尾,或者以”net”结尾的行,我们该怎么办呢?

这时候,我们就需要用到”|”

“|”在扩展正则表达式中表示”或者”,所以,我们可以使用如下表达式

在这里插入图片描述

上图中的扩展正则使用了分组符号”( )”,”(com|net)”表示将括号内的内容看做一个整体,而括号内的内容为”com|net”,它表示”com或者net”,所以,”(com|net)$”就表示以com或者net结尾的行。是不是很简单?

那么,我们就趁热打铁,通过实际练习,来熟悉一下”扩展正则表达式”吧。

仍然以刚才的示例文件作为测试文件,假设,我们想要查找出测试文本中的”合法邮箱”,我们应该怎么做呢?

既然是要找出”合法邮箱”,那么,我们则必须事先定义,满足哪些条件的邮箱才属于合法邮箱。

所以,我们规定,如果一个邮箱属于合法邮箱,那么必须满足如下条件。

1、邮箱字符串中必须包含”@”符。

2、”@”符前面的字符只能是小写字母或数字,不能包含特殊符号。

3、”@”符前面的字符数量至少需要4个,至多为16个。

4、邮箱必须以”com”、”net”、”org”、”edu”等顶级域名结尾(此处为了方便演示,不判断更多的域名)。

5、顶级域名之前必须包含一个”点”,换句话说就是,邮箱必须以”.com”、”.net”、”.org”、”.edu”结尾。

6、”@”与”.”之间的字符数量不能超过12个,不能低于2个。

7、”@”与”.”之间的字符只能是小写字母或数字,不能包含特殊符号。

好了,了解了合法邮箱的规则以后,我们就可以开始编写正则表达式了,我们可以使用如下正则,查找文本中的合法邮箱。

在这里插入图片描述

如果你觉得上述正则稍微有些复杂,不容易理解,那么可以将其拆分成几个部分去理解,拆分后的每一部分,可以与之前的”合法邮箱条件”一一对应,如下图所示。

在这里插入图片描述

这样看,是不是容易理解多了,好了,赶快自己动手实验一下吧。

小结

我认为,有了之前基础的你,搞定”扩展正则表达式”,肯定是分分钟的事情,所以,我们就对”扩展正则表达式”进行一下总结吧。

常用符号
.   表示任意单个字符。
*  表示前面的字符连续出现任意次,包括0次。
.* 表示任意长度的任意字符,与通配符中的*的意思相同。
\  表示转义符,当与正则表达式中的符号结合时表示符号本身。
| 表示"或者"之意
[  ]表示匹配指定范围内的任意单个字符。
[^  ]表示匹配指定范围外的任意单个字符。单个字符匹配相关
[[:alpha:]]  表示任意大小写字母。
[[:lower:]]  表示任意小写字母。
[[:upper:]]  表示任意大写字母。
[[:digit:]]  表示0到9之间的任意单个数字(包括0和9)。
[[:alnum:]]  表示任意数字或字母。
[[:space:]]  表示任意空白字符,包括"空格"、"tab键"等。
[[:punct:]]  表示任意标点符号。
[^[:alpha:]]  表示单个非字母字符。
[^[:lower:]]  表示单个非小写字母字符。
[^[:upper:]]  表示单个非大写字母字符。
[^[:digit:]]  表示单个非数字字符。
[^[:alnum:]]  表示单个非数字非字母字符。
[^[:space:]]  表示单个非空白字符。
[^[:punct:]]  表示单个非标点符号字符。
[0-9]与[[:digit:]]等效。
[a-z]与[[:lower:]]等效。
[A-Z]与[[:upper:]]等效。
[a-zA-Z]与[[:alpha:]]等效。
[a-zA-Z0-9]与[[:alnum:]]等效。
[^0-9]与[^[:digit:]]等效。
[^a-z]与[^[:lower:]]等效。
[^A-Z]与[^[:upper:]]等效
[^a-zA-Z]与[^[:alpha:]]等效
[^a-zA-Z0-9]与[^[:alnum:]]等效次数匹配相关
?  表示匹配其前面的字符0或1次
+  表示匹配其前面的字符至少1次,或者连续多次,连续次数上不封顶。
{n} 表示前面的字符连续出现n次,将会被匹配到。
{x,y} 表示之前的字符至少连续出现x次,最多连续出现y次,都能被匹配到,换句话说,只
要之前的字符连续出现的次数在x与y之间,即可被匹配到。
{,n} 表示之前的字符连续出现至多n次,最少0次,都会陪匹配到。
{n,}表示之前的字符连续出现至少n次,才会被匹配到。位置边界匹配相关
^:表示锚定行首,此字符后面的任意内容必须出现在行首,才能匹配。
$:表示锚定行尾,此字符前面的任意内容必须出现在行尾,才能匹配。
^$:表示匹配空行,这里所描述的空行表示"回车",而"空格"或"tab"等都不能算作此处所描述的空行。
^abc$:表示abc独占一行时,会被匹配到。
\<或者\b :匹配单词边界,表示锚定词首,其后面的字符必须作为单词首部出现。
\>或者\b :匹配单词边界,表示锚定词尾,其前面的字符必须作为单词尾部出现。
\B:匹配非单词边界,与\b正好相反。分组与后向引用
( ) 表示分组,我们可以将其中的内容当做一个整体,分组可以嵌套。
(ab) 表示将ab当做一个整体去处理。
\1 表示引用整个表达式中第1个分组中的正则匹配到的结果。
\2 表示引用整个表达式中第2个分组中的正则匹配到的结果。

那么什么时候使用基本正则表达式、什么时候使用扩展正则表达式呢?
这是一个仁者见仁的话题, 个人认为:
当出现2处或者2处以上使用“\”(反斜杆转义)的正则, 则使用扩展正则。

基本正则表达式与扩展正则表达式的区别:
区别主要是有几个部分可以不使用反斜杆转义.
如下:

1. 分组;  
基本正则表达式: \(\)
扩展正则表达式: ()2. 或
基本正则表达式: \|
扩展正则表达式: |3. 次数匹配相关
基本正则表达式:
\?  表示匹配其前面的字符0或1次
\+  表示匹配其前面的字符至少1次,或者连续多次,连续次数上不封顶。
\{n\} 表示前面的字符连续出现n次,将会被匹配到。
\{x,y\} 表示之前的字符至少连续出现x次,最多连续出现y次,都能被匹配到,换句话说,只要之前的字符连续出现的次数在x与y之间,
即可被匹配到。
\{,n\} 表示之前的字符连续出现至多n次,最少0次,都会陪匹配到。
\{n,\}表示之前的字符连续出现至少n次,才会被匹配到。扩展正则表达式:
?  表示匹配其前面的字符0或1次
+  表示匹配其前面的字符至少1次,或者连续多次,连续次数上不封顶。
{n} 表示前面的字符连续出现n次,将会被匹配到。
{x,y} 表示之前的字符至少连续出现x次,最多连续出现y次,都能被匹配到,换句话说,只
要之前的字符连续出现的次数在x与y之间,即可被匹配到。
{,n} 表示之前的字符连续出现至多n次,最少0次,都会陪匹配到。
{n,}表示之前的字符连续出现至少n次,才会被匹配到。

关于”扩展正则表达式”,就总结到这里,希望能够帮助到你~~

相关文章:

正则表达式(9):扩展正则表达式

正则表达式&#xff08;9&#xff09;&#xff1a;扩展正则表达式 小结 本博文转载自 前文中一直在说&#xff0c;在Linux中&#xff0c;正则表达式可以分为”基本正则表达式”和”扩展正则表达式”。 我们已经认识了”基本正则表达式”&#xff0c;现在&#xff0c;我们来认…...

静态SOCKS5:了解基本概念和协议

SOCKS5是一种网络协议&#xff0c;是SOCKS协议的第五个版本&#xff0c;它提供了一种安全的、加密的网络连接&#xff0c;可以帮助用户在互联网上保护自己的隐私和安全。静态SOCKS5是指使用静态IP地址和端口的SOCKS5代理服务器&#xff0c;这种代理服务器可以提供更稳定、更快速…...

用23种设计模式打造一个cocos creator的游戏框架----(十二)状态模式

1、模式标准 模式名称&#xff1a;状态模式 模式分类&#xff1a;行为型 模式意图&#xff1a;允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 结构图&#xff1a; 适用于&#xff1a; 1、一个对象的行为决定于它的状态&#xff0c;并且它必须…...

js 转换为数组并返回(Array.of())

Array提供了方法直接将一组值转换为数组并返回 Array.of()方法 Array.of(1,2,3) 结果...

git上传文件夹后打不开,有@.....

这种情况是你上传的这个文件夹也是个git仓库&#xff0c;需要删除.git文件。 如果你删除.git文件后&#xff0c;上传git还是不行&#xff0c;文件夹还是…&#xff0c;那就需要清理以下整个项目的缓存&#xff1a; git rm -r --cached ....

31、应急响应——Windows

文章目录 一、账户排查1.1 登录服务器的途径1.2 弱口令1.3 可疑账号 二、网络排查三、进程排查四、注册表排查五、内存分析 一、账户排查 1.1 登录服务器的途径 3389smb 445httpftp数据库中间件 1.2 弱口令 弱口令途径&#xff1a;3389、smb 445、http、ftp、数据库、中间件…...

QT linux下使用Qt Creator调试附加进程,加快调试

文章目录 一、调试附加进程二、配置流程&#xff08;1&#xff09;开放linux内核配置项&#xff08;2&#xff09;命令行直接启动程序&#xff08;3&#xff09;调试附加到进程 一、调试附加进程 使用附加进程调试要比直接调试速度要快&#xff0c;但是不足之处是&#xff0c;…...

IDEA Maven项目如何引用本地jar包,并打包发布

jar包位于当前路径下的lib目录中 引入所需要的配置 查看当前jar包的相关信息 包的引入,需要使用到当前包的artifactId, groupId, version 需要到包的/META-INF/maven/ 下面的 pom.xml 文件里面找 在Maven构建项目时&#xff0c;生成的依赖包中的/META-INF/maven目录存放了一些…...

Unity中Batching优化的GPU实例化(3)

文章目录 前言一、UNITY_SETUP_INSTANCE_ID(v);二、在UnityInstancing.cginc文件中&#xff0c;看一下Unity这句话做了什么1、使用了该 .cginc 后&#xff0c;会自动预定义该函数2、需要满足GPU实例化条件&#xff0c;才会执行对应语句3、满足GPU实例化后&#xff0c;主要执行的…...

Web应用JSON数据保护(密码算法、密钥、数字签名和数据加密)

1.JSON&#xff08;JavaScript Object Notation&#xff09; JSON是一种轻量级的数据交换格式&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据。JSON通过简单的key-value键值对来描述数据&#xff0c;可以被广泛用于网络通信、数据存储等各种应用场景&#xff0…...

【软件安装】VMware安装Centos7虚拟机并且设置静态IP,实现Windows和Centos7网络互相访问

这篇文章&#xff0c;主要介绍VMware安装Centos7虚拟机并且设置静态IP&#xff0c;实现Windows和Centos7网络互相访问。 目录 一、VMware安装Centos7 1.1、下载Centos7镜像 1.2、安装Centos7系统 二、设置静态IP地址 2.1、查看虚拟机网络IP 2.2、禁用NetworkManager服务 …...

203. 移除链表元素

203. 移除链表元素 https://leetcode.cn/problems/remove-linked-list-elements/description/ 方法一&#xff1a;迭代 迭代遍历链表 注意&#xff1a;这里的head是指向第一个节点的&#xff08;首元节点&#xff09;&#xff0c;并没有一个虚拟的头节点&#xff0c;所以这…...

最新鸿蒙HarmonyOS4.0开发登陆的界面1

下载deveco-studio 说明一下&#xff0c;本人只是学习中&#xff0c;现在只是拿着vue及uniapp的经验在一点一点的折腾&#xff0c;不过现在看来&#xff0c;鸿蒙入门并不是很难。也许是自己没有深入下去。 https://developer.harmonyos.com/cn/develop/deveco-studio#download…...

【模型训练】目标跟踪

【模型训练】目标跟踪...

zabbix——实现高效网络监控

在当今的数字化时代&#xff0c;网络和服务器的健康状况对于企业的正常运营至关重要。为了及时发现和解决潜在的问题&#xff0c;许多企业选择使用网络监控工具来追踪服务器的性能和网络参数。其中&#xff0c;Zabbix是一个功能强大且开源的网络监控工具&#xff0c;被广泛应用…...

LeetCode力扣每日一题(Java):58、最后一个单词的长度

一、题目 二、解题思路 1、我的思路 先将字符串转换成字符数组 由于我们需要获取最后一个单词的长度&#xff0c;所以我们从后往前遍历字符数组 我们还需判断所遍历的字符是不是字母&#xff0c;即判断每个字符对应的ASCII值即可&#xff0c;用计数器count来储存单词长度 …...

一、python requests爬虫[基础、上传文件、会话维持、代理设置]

一、requests 1. 发送 解释&#xff1a;向服务器发送请求 1.1 请求页面方式 requests.get(www.baidu.com) requests.post(www.baidu.com) 1.2请求参数 1.2.1 get params {"id":16,"name":"jack" } requests.get(www.baidu.com,paramspara…...

ActiveMQ使用指南

介绍 ActiveMQ是Apache开源组织旗下的一个项目&#xff0c;是一个流行的开源消息中间件。它完全支持JMS1.1和J2EE1.4规范的JMS Provider实现&#xff0c;并且是纯Java开发的产品。ActiveMQ支持多种语言编写客户端&#xff0c;包括C,C,C#,Perl,PHP,Ruby,Ajax等&#xff0c;同时…...

动态SQL学习及使用场景(简略)

假设我们有一个商品表&#xff0c;包含id、name、price和category四个字段。现在需要实现修改商品价格的功能&#xff0c;我们可以使用动态SQL实现。 首先&#xff0c;我们需要构造一个SQL语句&#xff0c;根据用户提供的参数来动态生成&#xff0c;具体实现如下&#xff1a; …...

【算法每日一练]-动态规划(保姆级教程 篇13)POJ2686马车旅行 #POJ3254 玉米田 #POJ1185:炮兵阵地

目录 今天知识点 dp每个票的使用情况&#xff0c;然后更新此票状态下的最优解&#xff0c;dp到没有票就行了 dp每行的种植状态&#xff0c;从i-1行进行不断转移 dp每行的种植状态&#xff0c;从i-1和i-2行进行不断转移 POJ2686马车旅行 思路&#xff1a; POJ3254 玉米田…...

工业固体废物智能化综合管控平台

工业固体废物智能化综合管控平台&#xff0c;涵盖产废企业、运输企业、固废处置企 业等不同群体应用&#xff0c;根据不同群体设计不同的业务应用子系统功能&#xff0c;以及各个不 同群体的环保物联网平台子系统功能模块&#xff0c;同时具有移动端的应用APP。 建立产废企业端…...

玩转大数据12:大数据安全与隐私保护策略

1. 引言 大数据的快速发展&#xff0c;为各行各业带来了巨大的变革&#xff0c;也带来了新的安全和隐私挑战。大数据系统通常处理大量敏感数据&#xff0c;包括个人身份信息、财务信息、健康信息等。如果这些数据被泄露或滥用&#xff0c;可能会对个人、企业和社会造成严重的损…...

Qt工程文件分离、Qtimer定时器、Qt Creator 常用快捷键

Qt 工程文件分离 不含 UI 的文件分离 以堆栈窗体的代码为例。 firstpagewidget.h #ifndef FIRSTPAGEWIDGET_H #define FIRSTPAGEWIDGET_H#include <QtWidgets> // 记得修改class firstPageWidget : public QWidget {Q_OBJECT public:explicit firstPageWidget(QW…...

验收支撑-软件项目验收计划书

软件项目验收计划的作用主要有以下几点&#xff1a; 确保项目质量&#xff1a;通过项目验收&#xff0c;客户或相关方可以对项目的成果进行全面、系统的评估&#xff0c;以确保项目达到预期的质量标准。发现和解决问题&#xff1a;在项目开发过程中&#xff0c;难免会存在一些问…...

SQL注入绕过技术

预计更新SQL注入概述 1.1 SQL注入攻击概述 1.2 SQL注入漏洞分类 1.3 SQL注入攻击的危害 SQLMap介绍 2.1 SQLMap简介 2.2 SQLMap安装与配置 2.3 SQLMap基本用法 SQLMap进阶使用 3.1 SQLMap高级用法 3.2 SQLMap配置文件详解 3.3 SQLMap插件的使用 SQL注入漏洞检测 4.1 SQL注入…...

锂电池基础知识及管理方式总结

这两天在排查一个锂电池无法充电的问题&#xff0c;用的是电池管理芯片BQ25713&#xff0c;网上相关的资料也很少&#xff0c;查看数据手册时&#xff0c;里面也有很多术语参数等不是很理解&#xff0c;所以&#xff0c;在此对锂电池的基础知识做个简单的总结&#xff0c;方面后…...

小红书基于零信任 SASE 办公安全解决方案,斩获 “IDC 中国 20 大杰出安全项目”

近日&#xff0c;由 IDC 主办的 2023 全球 CSO 网络安全峰会&#xff08;中国站&#xff09;在京举行&#xff0c;峰会荟萃 300 生态伙伴和行业领袖&#xff0c;共同探讨新形势下的数据安全保护&#xff0c;畅议未来网络安全的可靠航道。 会上&#xff0c;“2023 IDC 中国20大杰…...

html通过CDN引入Vue使用Vuex以及Computed、Watch监听

html通过CDN引入Vue使用Vuex以及Computed、Watch监听 近期遇到个需求&#xff0c;就是需要在.net MVC的项目中&#xff0c;对已有的项目的首页进行优化&#xff0c;也就是写原生html和js。但是咱是一个写前端的&#xff0c;写html还可以&#xff0c;.net的话&#xff0c;开发也…...

【LabVIEW学习】5.数据通信之TCP协议,控制电脑的一种方式

一。tcp连接以及写数据&#xff08;登录&#xff09; 数据通信--》协议--》TCP 1.tcp连接 创建while循环&#xff0c;中间加入事件结构&#xff0c;创建tcp连接&#xff0c;写入IP地址与端口号 2.写入tcp数据 登录服务器除了要知道IP地址以及端口以外&#xff0c;需要用户名与密…...

uview1 的u-tabs组件在微信小程序中会出现横向滚动条

uview1 的u-tabs组件在微信小程序中会出现横向滚动条&#xff0c;真机才会生效&#xff0c;微信开发者工具没问题包括官方示例也会 原因&#xff1a;未屏蔽微信小程序的滚动条 解决办法&#xff1a;uview-ui中uview-ui/components/u-tabs/u-tabs.vue文件把h5屏蔽滚动条的条件编…...