小编tch*_*ist的帖子

如何在python中的regular-expression中指定一系列unicode字符?

我正在尝试匹配一系列Unicode字符,我想知道如何做到这一点.我可以匹配像[a-zA-Z]这样的简单范围,但是如何指定一系列Unicode字符.我试过了

[#xD8-#xF6]
Run Code Online (Sandbox Code Playgroud)

没有运气.有任何想法吗?

python regex unicode

19
推荐指数
2
解决办法
1万
查看次数

Perl的postfix`for`语法在哪里记录?

我最近遇到了以下代码片段

$count_stuff{$_}++ for @stuff;
Run Code Online (Sandbox Code Playgroud)

例如,使用哈希来计算数组中字符串的出现是一种非常方便的方法.我理解它是如何工作的,但不是为什么它有效.我无法找到使用这种方式的文档进行.

它为什么有效?文档在哪里?

syntax perl

19
推荐指数
1
解决办法
2906
查看次数

使用正则表达式预测,egrep

如果您的文件包含

apples are good
apple cider is also good
Run Code Online (Sandbox Code Playgroud)

为什么egrep '(?=apples)app' file不能拿起任何线路?

在MAC上使用egrep 2.5.1

regex grep regex-lookarounds

19
推荐指数
1
解决办法
1万
查看次数

哪些字符可以用作正则表达式分隔符?

哪些字符可以用作Perl正则表达式的分隔符?m/re/,m(re)并且måreå似乎都工作,但我想知道所有的可能性.

regex unicode perl

18
推荐指数
4
解决办法
1万
查看次数

假设Unicode和不区分大小写,模式".."是否匹配"FfIsS"?

这听起来像个笑话,但我可以证明这一点.

假设:

  • Dot匹配任何单个字符.
  • 不区分大小写的模式匹配s且仅当它匹配时才匹配s.toUpperCase().

以下所有内容都非常符合逻辑并且在Java中保留:

  • "?".matches(".") LATIN SMALL LIGATURE FFI(U + FB03)是一个字符,因此它必须匹配
  • "ß".matches(".") LATIN SMALL LETTER SHARP S(U + 00DF)是一个字符,因此它必须匹配
  • "?".toUpperCase().equals("FFI") 按Unicode标准(没有资本连字FFI)
  • "ß".toUpperCase().equals("SS") 按照Unicode标准(有一个大写的S,但它没有被使用)
  • "FfI".toUpperCase().equals("FFI") 明显
  • "sS".toUpperCase.equals("SS") 明显

因此,假设正则表达式中的第一个点代表?第二个点,则正则ß表达式必须匹配"FFISS",并且因为不区分大小写也是"FfIsS".

真的希望有一些错误,否则正则表达式会变得非常不可用.

问题:

  • 我的"证明"有什么问题?
  • 如果我的第二个假设不成立,那么"不区分大小写"究竟意味着什么?

java regex unicode case-insensitive case-folding

17
推荐指数
1
解决办法
1213
查看次数

javascript和字符串操作w/utf-16代理对

正在开发一个推特应用程序,偶然发现了utf-8(16)的世界.似乎大多数javascript字符串函数对代理对都是盲目的.我必须重新编码一些东西才能让它具有广泛的字符意识.

我有这个函数来解析字符串到数组,同时保留代理对.然后我将重新编码几个函数来处理数组而不是字符串.

function sortSurrogates(str){
  var cp = [];                 // array to hold code points
  while(str.length){           // loop till we've done the whole string
    if(/[\uD800-\uDFFF]/.test(str.substr(0,1))){ // test the first character
                               // High surrogate found low surrogate follows
      cp.push(str.substr(0,2)); // push the two onto array
      str = str.substr(2);     // clip the two off the string
    }else{                     // else BMP code point
      cp.push(str.substr(0,1)); // push one onto array
      str = str.substr(1);     // clip one from string 
    }
  }                            // loop
  return cp; …
Run Code Online (Sandbox Code Playgroud)

javascript string unicode twitter utf-16

16
推荐指数
4
解决办法
8572
查看次数

匹配任何语言的字母

如何在python 3中使用正则表达式匹配任何语言的字母?

re.match([a-zA-Z]) 将匹配英语字符,但我希望同时支持所有语言.

我不希望匹配'in can't或underscores或任何其他类型的格式.我真希望我的正则表达式匹配:c,a,n,t,Å,é,和?.

python regex unicode

16
推荐指数
2
解决办法
6833
查看次数

为什么选择在单独的语句中声明和初始化词法变量?

这是摘录自 AnyEvent::Intro

# register a read watcher
my $read_watcher; $read_watcher = AnyEvent->io (
    fh   => $fh,
    poll => "r",
    cb   => sub {
        my $len = sysread $fh, $response, 1024, length $response;

        if ($len <= 0) {
           # we are done, or an error occurred, lets ignore the latter
           undef $read_watcher; # no longer interested
           $cv->send ($response); # send results
        }
    },
);
Run Code Online (Sandbox Code Playgroud)

它为什么用

my $read_watcher; $read_watcher = AnyEvent->io (...
Run Code Online (Sandbox Code Playgroud)

代替

my $read_watcher = AnyEvent->io (...
Run Code Online (Sandbox Code Playgroud)

variables perl

15
推荐指数
1
解决办法
309
查看次数

Java Regex模式匹配任何字符序列后首次出现的"边界"

我想设置一个模式,它将找到一个受第一次出现的"边界"限制的捕获组.但现在使用了最后一个边界.

例如:

String text = "this should match from A to the first B and not 2nd B, got that?";
Pattern ptrn = Pattern.compile("\\b(A.*B)\\b");
Matcher mtchr = ptrn.matcher(text);
while(mtchr.find()) {
    String match = mtchr.group();
    System.out.println("Match = <" + match + ">");
}
Run Code Online (Sandbox Code Playgroud)

打印:

"Match = <A to the first B and not 2nd B>"
Run Code Online (Sandbox Code Playgroud)

我希望它打印:

"Match = <A to the first B>"
Run Code Online (Sandbox Code Playgroud)

在模式中需要更改什么?

java regex

15
推荐指数
2
解决办法
2万
查看次数

在Perl中对数组进行洗牌的最佳方法是什么?

所以我有一个文件.让我们说它看起来像这样(它实际上更长):

1234
2134
3124
4123
Run Code Online (Sandbox Code Playgroud)

在该文件中改变行的最佳方法是什么?

random perl shuffle

15
推荐指数
1
解决办法
1万
查看次数