我有一个类似模式的长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中我想提取:
collections.php?prod_id=50 files/products_categories50_t.txtBuffer我已经尝试过这段代码,
#!/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)
此代码是试用版.然而,它只带来最后一次出现,而不是每次出现.为什么?
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
我有一些文件经过OCR从PDF转换为HTML.因此,他们最终有很多随机的unicode标点,转换器搞砸了(即elipses等).他们也正确地拥有一堆非英语,但仍然是字母字符,如é和俄语字符等...
有没有办法制作一个匹配任何unicode字母字符(来自任何语言的字母)的正则表达式?或者只匹配非字母字符的那个?任何一个都会非常有用而且非常棒.我正在使用Perl,如果这改变了什么.谢谢!
我想知道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) 我目前正在学习如何编写类型类.我似乎无法编写具有模糊发生的编译错误的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) 我有一个字符串
$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)
谢谢!
记住在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字形集群无论多少码点含有,等等) .
我有一个多语种网站(中文和英文).
我喜欢在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) perl ×6
regex ×6
unicode ×5
haskell ×1
html ×1
identifier ×1
java ×1
javascript ×1
matcher ×1
parsing ×1
php ×1
statistics ×1
typeclass ×1
utf-8 ×1