小编tch*_*ist的帖子

解析perl中的表数据有问题

我有一个类似模式的长htdoc,继续这样:

<td class="MODULE_PRODUCTS_CELL " align="center" valign="top" height="100">
<table width="100" summary="products"><tr>
<td align="center" height="75">
<a href="/collections.php?prod_id=50">
<img src="files/products_categories50_t.txt" border="0" alt="products" /></a><\br>
</td>
</tr>
<tr>
<td align="center">
<a href="/collections.php?prod_id=50"><strong>Buffer</strong><br />
</a>
<td>
</tr></table>
</td>
Run Code Online (Sandbox Code Playgroud)

在上面的html中我想提取:

  1. collections.php?prod_id=50
  2. files/products_categories50_t.txt
  3. Buffer

我已经尝试过这段代码,

#!/usr/local/bin/perl

use strict;
use warnings;
my $filename =  'sr.txt';

open(FILENAME,$filename);
my @str = <FILENAME>;
chomp(@str);
#print "@str";

foreach my  $str(@str){    
     if ($str =~/<td class(.*)<a href(.*?)><\/td>/) {
         print "*****$2\n";
     }    
}
Run Code Online (Sandbox Code Playgroud)

此代码是试用版.然而,它只带来最后一次出现,而不是每次出现.为什么?

html regex perl parsing

11
推荐指数
2
解决办法
2035
查看次数

\ w是否匹配Unicode标准中定义的所有字母数字字符?

Perl是否\w匹配Unicode标准中定义的所有字母数字字符?

例如,是否\w匹配所有(比方说)中文和俄文字母数字字符?

我写了一个简单的测试脚本(见下文),它表明\w我测试的非ASCII字母数字字符确实符合"预期".但测试显然远非详尽无遗.

#!/usr/bin/perl                                                                                                                                                                                                  

use utf8;

binmode(STDOUT, ':utf8');

my @ok;
$ok[0] = "abcdefghijklmnopqrstuvwxyz";
$ok[1] = "éèëáàåäö??ž?í???øáý?óæš?ô?";
$ok[2] = "??ü??âi?ó?????íá??????????";
$ok[3] = "??????????????????????????";
$ok[4] = "??????????????????????????";
$ok[5] = "?????????????????????";

foreach my $ok (@ok) {
    die unless ($ok =~ /^\w+$/);
}
Run Code Online (Sandbox Code Playgroud)

regex unicode perl internationalization character-properties

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

有没有办法匹配任何Unicode非字母字符?

我有一些文件经过OCR从PDF转换为HTML.因此,他们最终有很多随机的unicode标点,转换器搞砸了(即elipses等).他们也正确地拥有一堆非英语,但仍然是字母字符,如é和俄语字符等...

有没有办法制作一个匹配任何unicode字母字符(来自任何语言的字母)的正则表达式?或者只匹配非字母字符的那个?任何一个都会非常有用而且非常棒.我正在使用Perl,如果这改变了什么.谢谢!

regex unicode perl character-properties

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

Java支持模式中的"(?<name> pattern)"

我想知道Java是否与C#的命名模式匹配相当.例如,在C#中,我可以这样做:

var pattern = @";(?<foo>\d{6});(?<bar>\d{6});";
var regex = new Regex(pattern , RegexOptions.None);
var match = regex.Match(";123456;123456;");

var foo = match.Groups["foo"].Success ? match.Groups["foo"].Value : null;
var bar = match.Groups["bar"].Success ? match.Groups["bar"].Value : null;
Run Code Online (Sandbox Code Playgroud)

这似乎是一种抓住群体的干净方式.Java可以做类似的事情,还是我需要根据索引位置抓取组?

String foo = matcher.group(0);
Run Code Online (Sandbox Code Playgroud)

java regex matcher

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

模棱两可的事件

我目前正在学习如何编写类型类.我似乎无法编写具有模糊发生的编译错误的Ord类型类.

module Practice where

class  (Eq a) => Ord a  where
    compare              :: a -> a -> Ordering
    (<), (<=), (>=), (>) :: a -> a -> Bool
    max, min             :: a -> a -> a

    -- Minimal complete definition:
    --      (<=) or compare
    -- Using compare can be more efficient for complex types.
    compare x y
         | x == y    =  EQ
         | x <= y    =  LT
         | otherwise =  GT

    x <= y           =  compare x y …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass

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

Perl标识符中允许哪些字符?

我正在做正则表达式作业,其中一个问题是:

在线使用语言参考手册确定Java,Python,Perl和C的整数数字常量和标识符的正则表达式.

我在正则表达式上不需要帮助,我只是不知道Perl中的标识符是什么样的.我发现页面描述了C,PythonJava的有效标识符,但我找不到任何关于Perl的内容.

编辑:澄清一下,找到文档很容易(比如谷歌搜索python标识符).我不参加"谷歌搜索"课程.

unicode perl identifier

10
推荐指数
3
解决办法
4959
查看次数

使用perl查找中位数,模式,标准差?

我有一系列数字.计算数据集的中位数,模式和标准开发的最简单方法是什么?

statistics perl

10
推荐指数
3
解决办法
3万
查看次数

Perl,使用tr函数将大写转换为小写,反之亦然?

我有一个字符串

$string= 'AbCdEf';
Run Code Online (Sandbox Code Playgroud)

我想使用tr函数将所有大写字母转换为小写字母,将所有小写字母转换为大写字母....同时.我基本上只想扭转它成为.

aBcDeF
Run Code Online (Sandbox Code Playgroud)

我提出了这条线,但我不知道如何修改它来做我想要的.有什么帮助吗?

$string=~ tr/A-Z/a-z/;
Run Code Online (Sandbox Code Playgroud)

谢谢!

perl case-conversion

10
推荐指数
3
解决办法
3万
查看次数

宣言使PHP脚本完全符合Unicode

记住在PHP中做你需要做的所有事情,以使它与Unicode一起正常工作是非常棘手,乏味和容易出错的,所以我正在寻找让PHP神奇地升级所有可能的东西的技巧可以从发霉的旧ASCII字节模式转换为现代Unicode字符模式,一次性使用一个简单的声明.

我们的想法是使PHP脚本现代化以使用Unicode,而不必使用一堆混乱的备用函数调用和特殊的正则表达式来混淆源代码.一切都应该只用Unicode 做"做正确的事",没有问题.

鉴于目标是最大限度地使用Unicode并且最小化,这个声明必须至少做这些事情(加上我忘记的任何其他事情进一步促进总体目标):

  • PHP脚本源本身被认为是UTF-8(例如,字符串和正则表达式).

  • 所有输入和输出都根据需要自动转换为UTF-8,并使用标准化选项(例如,所有输入归一化为NFD,所有输出归一化为NFC).

  • 所有具有Unicode版本的函数都使用这些函数(例如,Collator::sortfor sort).

  • 所有字节功能(例如,strlen,strstr,strpos,和substr)的工作方式与相应的字符的功能(例如mb_strlen,mb_strstr,mb_strpos,和mb_substr).

  • 所有的正则表达式和regexy功能上的Unicode透明地工作(即,像所有的preggers都/u含蓄地上涨了,事情就是这样\w,并\b\s所有有关Unicode的工作方式Unicode标准要求他们的工作,等等).

额外信用:),我希望有一种方法可以将此声明"升级"为完全字形模式. 这样,字节或字符的功能变得字形功能(例如grapheme_strlen,grapheme_strstr,grapheme_strpos,和grapheme_substr),和正则表达式的东西工作在适当的字形(即.-甚至[^abc]-匹配一个Unicode字形集群无论多少码点含有,等等) .

php regex unicode utf-8

10
推荐指数
2
解决办法
948
查看次数

如何验证中文(unicode)和英文名称?

我有一个多语种网站(中文和英文).

我喜欢在javascript中验证文本字段(名称字段).到目前为止,我有以下代码.

var chkName = /^[characters]{1,20}$/;

if( chkName.test("[name value goes here]") ){
  alert("validated");
}
Run Code Online (Sandbox Code Playgroud)

问题是,/ ^ [字符] {1,20} $ /只匹配英文字符.是否可以匹配任何(包括unicode)字符?我以前使用以下正则表达式,但我不想在每个characeters之间留出空格.

/^(.+){1,20}$/
Run Code Online (Sandbox Code Playgroud)

javascript regex unicode character-properties

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