精华内容
下载资源
问答
  • 1、中文与英文数字混合使用,排版有规范写作,我们经常遇到以下中文与英文、...其实,中文和数字英文之间有一个空格会更美观。我自学 python 编程,是在xue.cn上进行的。时耗方面,基础功仅需 50 多小时,加上...

    3103a922ce9cf0fac8cf35101aa8fa9a.png

    1、中文与英文数字混合使用,排版有规范

    写作中,我们经常遇到以下中文与英文、数字混用的情况。

    我自学python编程,是在xue.cn上进行的。时耗方面,基础功仅需50多小时,加上很多实战,包括初步运用pandas和爬虫处理业务需求,加在一起也才200多小时而已。

    其实,中文和数字、英文之间有一个空格会更美观。

    我自学 python 编程,是在xue.cn上进行的。时耗方面,基础功仅需 50 多小时,加上很多实战,包括初步运用 pandas 和爬虫处理业务需求,加在一起也才 200 多小时而已。

    但我们可能尚未养成这样的输入习惯,以至于要么全部没有空格,要么部分加了空格,部分没有。当然您可以不在乎这个文本规范。对于那些在意这个文本规范的人,想要规范格式,要么人工逐项修改,偶尔写写短文时这么操作貌似并不麻烦。但日积月累,这也将是一项不菲的时间开销。

    要么,可以试试用正则匹配批量处理。——正是我这篇笔记想要分享的。你无须懂编程,也可使用特定工具快速完成批量添加中文和英文数字之间的空格。

    我掌握这个技能,最初并非源于我个人写作排版,而是近日处理很多文字内容编辑时的一个刚需。掌握这个技能,帮我显著提高了工作效率,把重复性肌肉劳动大幅度降低。

    2、正则表达式省掉千次万次机械操作

    我的电脑中可以没有微软或金山的任何办公软件,但不可以没有 vscode 和 jupyter lab。vscode 不仅可以用于写代码,还可用于写文章。工作中需基于 github 协作时,我也采用 vscode 操作。

    在 vscode 中存在以下搜索页签,展开具有以下选项:

    e1d500f3ef339db682f749a3bdc06c02.png

    第一行 search 填入所应匹配的样式。搜索支持三种模式。普通模式可直接复制粘贴你想要的样式,即便它有换行也是 OK 的。——在常见的办公软件中通常不支持复制粘贴换行,这足见 vscode 的强大实用。

    79adb9b07993a1641ee469bc48be4b71.png

    想要搜索任意中文和数字或英文字母的组合,需要用到以下正则表达式,并启动正则匹配搜索模式:

    • 中文在左,数字或英文字母在右 ([u4e00-u9fa5]+)([da-zA-Z]+)
    • 数字或英文字母在左,中文在右 ([da-zA-Z]+)([u4e00-u9fa5]+)

    然后 replace 行填写 $1 $2用于定义格式。

    9eb2f247f1abab2c3bfc419b8c885738.png

    如果文件非常多,想要对指定文件范围内实施,可以在第 3、4 行分别定义文件范围,所支持的语法当然也是正则表达式啦。

    vscode 非常棒的一点在于,此时我已经可以预览修改后的效果,待确认无误后,再点击执行全部替换即可。

    回到最初的需求,想要在中文紧挨着英文数字之间增加空格,分别处理中文在左、中文在右两个情况即可完成。是不是很简单呢?

    3、背后的原理?10 分钟系统理解正则表达式

    这背后的知识点,就是正则表达式。——这并非某种编程语言所特有的,而是几乎所有的编程语言都支持的一种处理。它采用了一些字符构成的语法来描述规则,然后便于对文本实施搜索、捕获、替换等操作。

    如果你想要对正则表达式来个 10 分钟系统了解,可访问 xue.cn 以游客模式直接阅读《自学是门手艺》的第 3 章“3.2.4 正则表达式”即可。

    这个 github 链接,你将看到我采用这一技巧对自己的编程学习笔记所作出的批量修改。——是的,这么大量的修改,只需一分钟。

    展开全文
  • 正则表达式,一个十分古老而又强大的文本处理工具,仅仅一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。下面是一些常用的正则...

    正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。

    下面是一些常用的正则匹配:

    1 . 校验密码强度

    密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。

    ^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

    2. 校验中文

    字符串仅能是中文。

    ^[一-龥]{0,}$

    3. 由数字、26个英文字母或下划线组成的字符串

    ^w+$

    4. 校验E-Mail 地址

    同密码一样,下面是E-mail地址合规性的正则检查语句。

    [w!#$%&'*+/=?^_`{|}~-]+(?:.[w!#$%&'*+/=?^_`{|}~-]+)*@(?:[w](?:[w-]*[w])?.)+[w](?:[w-]*[w])?

    5. 校验身份证号码

    下面是身份证号码的正则校验。15 或 18位。

    15位:

    ^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$

    18位:

    ^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}([0-9]|X)$

    6. 校验日期

    “yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。

    ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

    7. 校验金额

    金额校验,精确到2位小数。

    ^[0-9]+(.[0-9]{2})?$

    8. 校验手机号

    下面是国内 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)

    ^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$

    9. 判断IE的版本

    IE目前还没被完全取代,很多页面还是需要做版本兼容,下面是IE版本检查的表达式。

    ^.*MSIE [5-8](?:.[0-9]+)?(?!.*Trident/[5-9].0).*$

    10. 校验IP-v4地址

    IP4 正则语句。

    b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)b

    11. 校验IP-v6地址

    IP6 正则语句。

    (([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))

    12. 检查URL的前缀

    应用开发中很多时候需要区分请求是HTTPS还是HTTP,通过下面的表达式可以取出一个url的前缀然后再逻辑判断。

    if (!s.match(/^[a-zA-Z]+:///)){ s = 'http://' + s;}

    13. 提取URL链接

    下面的这个表达式可以筛选出一段文本中的URL。

    ^(f|ht){1}(tp|tps)://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

    14. 文件路径及扩展名校验

    验证windows下文件路径和扩展名(下面的例子中为.txt文件)

    ^([a-zA-Z]:|)([^]+)*[^/:*?"<>|]+.txt(l)?$

    15. 提取Color Hex Codes

    有时需要抽取网页中的颜色代码,可以使用下面的表达式。

    ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

    16. 提取网页图片

    假若你想提取网页中所有图片信息,可以利用下面的表达式。

    < *[img][^>]*[src] *= *["']{0,1}([^"' >]*)

    17. 提取页面超链接

    提取html中的超链接。

    (]*)(href="https?://)((?!(?:(?:www.)?'.implode('|(?:www.)?', $follow_list).'))[^"]+)"((?!.*brel=)[^>]*)(?:[^>]*)>

    18. 查找CSS属性

    通过下面的表达式,可以搜索到相匹配的CSS属性。

    ^s*[a-zA-Z-]+s*[:]{1}s[a-zA-Z0-9s.#]+[;]{1}

    19. 抽取注释

    如果你需要移除HMTL中的注释,可以使用如下的表达式。

    20. 匹配HTML标签

    通过下面的表达式可以匹配出HTML中的标签属性。

    ?w+((s+w+(s*=s*(?:".*?"|'.*?'|[^'">s]+))?)+s*|s*)/?>

    最后推荐一款正则表达式在线测试工具

    regex101是一个非常不错的正则表达式在线测试工具,你可以直接在线测试你的正则表达式哦。

    592af91112d3746fbedd42560621daa4.png
    展开全文
  • VB.NET,变量名、过程名、符号常量名、记录类型及元素名都...1)名字只能由字母、数字和下划线组成。 2)名字的第1个字符必须是英文字母,最后一个字符可以是类型说明符。 3)名字的有效字符为255个。 4)不...
    VB.NET中,变量名、过程名、符号常量名、记录类型及元素名都称为名字,[color=red]不区分名字中字母的大小写[/color]。
    为了便于阅读,每个单词开头的字母一般用大写,符号常量一般用大写字母定义。
    其命名规则:
    1)名字只能由字母、数字和下划线组成。
    2)名字的第1个字符必须是英文字母,最后一个字符可以是类型说明符。
    3)名字的有效字符为255个。
    4)不能用保留字作为变量名。

    类型的说明符:
    %:整型
    &:长整型
    !:单精度浮点数
    #:双精度浮点数
    @:Decimal型
    $:字符串型
    布尔、日期及对象类型没有类型说明符。
    展开全文
  • 在React开发项目的过程,避免不了会用到input标签(比如在登录、录入用户... 在做用户登录界面,用户登录名字可以是数字、字母或者是数字和字母的组合,在控制用户输入只能数字或者字母的时候,IOS的全键盘输...

    在React开发项目的过程中,避免不了会用到input标签(比如在登录、录入用户信息等界面),而使用input标签时候,为了体验限制只能输入数字、或者只能输入数字或者字母、或者只能输入英文等限制条件。
    今天在这里记录一下在项目中遇到的一个问题,描述如下:
    在做用户登录界面,用户登录名字可以是数字、字母或者是数字和字母的组合,在控制用户输入只能是数字或者字母的时候,用IOS的全键盘输入汉字,在还没有输入完成,输入的拼音就直接变成字母带入到input的value值中,代码如下:

    、、、、、
    onAccountChange(e){
        let value = e.target.value;
        value = value.replace(/[^\d/a-zA-Z]/g,'')
        this.setState({
        accountValue: value 
        })
    }
    、、、、、、
    render() {
        return(
            <input type="password" value={this.state.accountValue} onChange={this.onAccountChange}/>
        )
    }

    原因: 在input的onChange中监听到input中输入的值的时候进行了正则的判断,而输入中文的拼音时候也会走onChange这个方法,到这个方法做正则的替换时候不知道现在输入的是拼音,直接当成字母来处理了,就出现了Ios全键盘输入拼音时候还没有选择汉字拼音就直接转化成了字母。
    解决方法是使用compositionstart+compositionend+input来判断直接输入的还是非直接直接输入

    • compositionstart:非直接的文字输入时(键盘输入中文的拼音)
    • compositionend:直接输入文字后(键盘选择真实的汉字)
    • input:输入内容(输入任何东西)
      注:compositionend的调用会在input之后,所以我在实现的时候又做延迟

    我解决方如下:
    对input标签封装成一个模块,所有需要使用input标签使用这个模块;

    • 首先对模块首次渲染后做input标签的监听:
    componentDidMount (){
            this.inputRef.addEventListener('compositionstart', function(){//非直接的文字输入时(键盘输入中文的拼音)
                this.isCompositions = false;
            }.bind(this))
            this.inputRef.addEventListener('compositionend', function(){//直接输入文字后(键盘选择真实的汉字)
                this.isCompositions = true;
            }.bind(this))
            this.inputRef.addEventListener('input', function(){
                 setTimeout(function(){
                    if(this.isCompositions){//输入的是拼音就不回调输入的内容
                        this.props.onChange({target:{value:this.inputRef.value}})
                    }
                }.bind(this),100)//延迟回调模块中input中输入的值
            }.bind(this));
        } 
    • 在componentWillReceiveProps函数中重现更新使用正则 替换的值:
    componentWillReceiveProps (newProps){
            if (newProps.value!=this.state.inputValue) {
                this.setState({
                    inputValue: newProps.value
                });
            }
         }
    • 模块的input的标签的的onChange方法中 不做任何操作,把输入的内容直接赋值模块中input标签的value中:
     onChangeInput(e){
            this.setState({
                inputValue: e.target.value
            });
        }

    实现原理就是:在模块中input标签输入的值只在模块中使用,如果输入拼音时候,只有在选择完汉字后才回调父类的方法把input标签中的内容传输到父类,父类对其中的内容做一些正则替换后再传递给模块(子类),模块(子类)再改变input标签中的value值,从而解决直接使用input的onChange方法中使用正则出现问题。
    详细代码位置 InputView.jsx

    展开全文
  • 只能是: 1、英文大小写字母, 2、数字字符, 3、$ _。 不能以数字开头、不能是关键字。 三、常见的命名规则: 1、包其实就是文件夹,用于把相同的类名进行区分。全部小写 单级:abc 多级:abc.efg点隔开 2、类...
  • 知识回顾: class 名字{ public static void main(String[] args){ System.out.println(“东华帝君”); } } println 表示执行完换行 ...英文符号(_ $)只能用这两个 中文(不推荐!当做没有) 类名字首写字母大...
  • JavaScript变量知识简介

    2021-01-20 14:07:17
    – 变量名只能含有字母,数字,下划线美元符号。 2. 变量的声明、初始化赋值 ~变量的申明 – 在JavaScript,申明变量以var关键字,空一格再接变量的名字; – 可以一次申明多个变量,var出现一次,多个变量名...
  • C语言标识符

    2021-02-22 20:45:11
    (1)标识符只能英文大小写字母、下划线(_)开头,而不能其他任何字符或数字开头。 例如以下就是错误的例子: int %a;//错误,标识符不能以符号开头 int 8C[8];//错误,不能以数字开头 (2)标识符中只能包含...
  • 第三周笔记整理

    2019-09-25 02:12:53
    脚本的变量 Shell变量命名法则: 1、不能使程序的保留字:例如if, for ...4、用英文名字,并体现出实际作用 只读变量:只能声明,但不能修改删除 声明只读变量: readonly name declare...
  • 2020-12-22

    2020-12-22 09:32:10
    (1)名字只能由字母、数字和下划线组成; (2)名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符; (3)名字的有效字符为255个; (4)不能VB的保留字作为变量名,但可以把保留字嵌入变量名;...
  • 可以很简单简洁的英文单词来表示一个变量 ①变量命名时,只能是字母,下划线,数字 但是不能用数字开头 ②系统关键字,不能在变量名,叫做保留关键字(type不是系统保留的关键字) ③python变量名区分大小写...
  • 10.23日总结 ...(1)名字只能数字字母下划线_$组成。 (2)数字不能开头。 (3)名称不能java关键字。 (4)不允许出现中文拼音(少拼音)命名。 (5)类名必须遵从驼峰形式,方法名、参数名、成员变量、局部变
  • C语言笔记持续更新

    2020-01-21 13:26:49
    ·C语言变量名只能英文字母(A~Z, a~z)和数字(0~9)或者下画线(_)组成,其他特殊字母不行。下画线通常用于连接一个比较长的变量名,如i_love_fishC。 ·变量名必须以英文字母或者下画线开头,不能数字...
  • (1)只能用26个英文字母大小写、数字0-9、下划线_、美元符号$组成, 不要用其他的字符,包括中文 (2)一个标识符中间不要出现空格 (3)不能直接使用关键字(包括保留字)特殊值作为标识符 (4)数字不能开头 ...
  • 安装好这2个软件把这个转换器安装好拍摄的照片只能用DNGraw格式,软件不能处理其它的格式,否则拍了也等于白拍,浪费快门开始:1、打开LRT,找到你的照片位置并点击它(切记: 存放目录不支持汉字,记得把名字改为...
  • 1968年,美国通用汽车公司(GM)为适应生产工艺不断更新的需要,提出一种设想:把计算机的功能完善、通用、...但由于PC容易个人计算机(Personal Computer)混淆,所以人们还沿用PLC作为可编程控制器的英文缩写名字
  • 会计理论考试题

    2012-03-07 21:04:40
    A、用英文字母“PI”代替B、右击“输入法状态”窗口的软键盘按钮,然后选择希腊字母键盘 C、电报码输人法输人 D、在“画笔”,画出该字,再粘贴到文章 28.Windows98的文件系统结构是___C__形状。 A、网状 ...
  • FreeMark学习笔记

    2015-05-06 07:23:20
    对于顶层变量,直接使用${variableName}来输出变量值,变量名只能是字母,数字,下划线,$,@#的组合,且不能以数字开头号.为了输出上面的name的值,可以使用如下语法: ${name} 2,输出集合元素 如果需要输出集合元素,则...
  • 正则表达式

    2014-12-03 14:51:39
    我们已经发现了,在正则表达式所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非 字母字符.例如,序列 "\n" 在字符串匹配的是一个直接量换...
  • 记忆卡修复

    2011-10-12 20:41:38
    4.MMC卡读写速度越来越慢,远不如刚买会的时候同样是存储设备,手机的MMC存储卡电脑的一样,了一段时间以后回因为频繁的删除拷贝回出现磁盘碎片从而影响读写速度然而,硬盘的磁盘格式是FAT32或NTFS,手机的...
  • 元字符^(和数字6在同一个键位上的符号)和$都匹配一个位置,这和\b有点类似。^匹配你要用来查找的字符串的开头,$匹配结尾。这两个代码在验证输入的内容时非常有用,比如一个网站如果要求你填写的QQ号必须为5位到12...
  • shell编程学习笔记

    2014-02-11 10:06:45
    变量名称只能英文字母与数字,但是开头字符不能是数字,如下为错误:『2myname=VBird』 "4.变量内容若有空格符可使用双引号『""』或单引号『'』将变量内容结合起来,但 双引号内的特殊字符如 $ 等...
  • html入门到放弃笔记

    2018-05-15 15:06:12
    使用场合:当想访问互联网上的资源时,只能用绝对路径 完整的绝对路径分四部分: 1、协议名 http 2、域名(主机名,IP地址) www.codeboy.com 3、目录路径 img/header 4、文件名 logo.png ...
  • 你可以看到,每个错误都有3种表示法:即一个消息ID(这是你可以在源代码使用的一个宏,以便与GetLastError的返回值进行比较),消息文本(对错误的英文描述)一个号码(你应该避免使用这个号码,而应该使用消息...

空空如也

空空如也

1 2 3 4
收藏数 68
精华内容 27
关键字:

名字只能用中英文和数字