[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 523066680 于 2017-4-11 15:52 编辑

Perl
    1. my $lower = my $upper = 'bBAathToHOMmEe';
    2. $lower =~s/[A-Z]//g;
    3. $upper =~s/[a-z]//g;
    4. print $lower.$upper;
    复制代码
    如果不用正则,也就是遍历,加点糖
    1. my @s = split('', 'aDbEcFghijkLMN');
    2. my $n = 0;
    3. grep { print $_ if ( $_ ~~ ['a'..'z'] ) } @s;
    4. grep { print $_ if ( $_ ~~ ['A'..'Z'] ) } @s;
    复制代码


python也学了点毛皮
    1. u = ''
    2. l = ''
    3. for c in 'bBAathToHOMmEe':
    4.     if c in "abcdefghijklmnopqrstuvwxyz":
    5.         l+=c
    6.     else:
    7.         u+=c
    8. print(l+u)
    复制代码

TOP

本帖最后由 523066680 于 2017-4-11 15:22 编辑

回复 4# happy886rr

    我想到了 find, 速度慢;我想到了 if , 大小写区分,虽然 'A' gtr 'a' 成立, 但是 'A' gtr 'z' 居然不成立;
这个时候我想到了把 a b c, A B C 分组放到变量名里,很可惜,变量名不区分大小写。对批处理感到无助

不过,OK的,勉强写一个
  1. @echo off & setlocal enabledelayedexpansion
  2. set str=BaAbTcHdOeMfEg
  3. set dupl=%str%
  4. set "uc="
  5. set "lc="
  6. for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
  7.     set dupl=!dupl:%%a=%%a!
  8. )
  9. set /a n = 0
  10. :lp
  11.     if "!str:~%n%, 1!" == "!dupl:~%n%, 1!" (
  12.         set lc=!lc!!str:~%n%, 1!
  13.     ) else (
  14.         set uc=!uc!!str:~%n%, 1!
  15.     )
  16.     set /a n+=1
  17. if not "!str:~%n%!" == "" goto :lp
  18. echo %lc%%uc%
  19. pause
复制代码
1

评分人数

TOP

本帖最后由 523066680 于 2017-4-11 22:28 编辑

回复 14# codegay


    一行正则可以啊,加循环算不算... 只要有小写跟在大写后面,就反转,直到没有这种情况为止
  1. $s = "cDbEFa";
  2. while ( $s =~s/([A-Z])([a-z])/$2$1/) {}
  3. print $s
复制代码

TOP

本帖最后由 523066680 于 2017-4-15 10:57 编辑

回复 24# happy886rr


    Matrix67我知道,还买了他的第一版书作为支持。现在他博客上有很多更新文章还未看,忙于工作和重新补习不同语言的语法(糖)。

TOP

回复 36# happy886rr

    才看到你说改行,好奇现在做什么了?业余也不写代码了吗

TOP

返回列表