我正在尝试使用sed清理URL行以仅提取域名..
所以来自:
http://www.suepearson.co.uk/product/174/71/3816/
Run Code Online (Sandbox Code Playgroud)
我想要:
(有或没有火车斜线,没关系)
我试过了:
sed 's|\(http:\/\/.*?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)
和(逃避非贪婪量词)
sed 's|\(http:\/\/.*\?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)
但我似乎无法使非贪婪量词工作,所以它总是最终匹配整个字符串.
正则表达式可能变得非常复杂.缺少空白区域使他们难以阅读.我无法通过调试器使用正则表达式.那么专家如何调试复杂的正则表达式呢?
由于自PHP 5.3.0以来不推荐使用POSIX正则表达式(ereg),因此我想知道将旧表达式转换为PCRE(Perl兼容正则表达式)(preg)的简单方法.
每个例子,我有这个正则表达式:
eregi('^hello world');
Run Code Online (Sandbox Code Playgroud)
如何将表达式转换为preg_match兼容表达式?
注意:此帖子用作与从ereg转换为preg相关的所有帖子的占位符,以及相关问题的重复选项.请不要关闭这个问题.
有关:
我在使用正则表达式方面遇到了一些麻烦.
这是我的代码
$pattern = "^([0-9]+)$";
if (preg_match($pattern, $input))
echo "yes";
else
echo "nope";
Run Code Online (Sandbox Code Playgroud)
我跑了然后得到:
警告:preg_match()[function.preg-match]:找不到结尾分隔符'^'
当运行uwsgi时,我收到以下消息:
!!! no internal routing support, rebuild with pcre support !!!
Run Code Online (Sandbox Code Playgroud)
我已经使用以下命令安装了pcre(我认为):
Sudo apt-get install libpcre3 libpcre3-dev
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么即使在我安装了pcre软件包之后我仍然收到此消息,如果我需要重新安装uwsgi并激活pcre我该怎么做?
此外,内部路由是否重要?我认为它确实如此,否则uwsgi的制造商就不会提出这个消息.我运行Ubuntu 12.04 LTS.
谢谢您的帮助!
注意:这是关于现代正则表达口味的可能性的问题.这不是使用其他方法解决这个问题的最佳方法.它受到早期问题的启发,但不仅限于正则表达式.
在ASCII"图像"/ art/map/string中:
....X.......
..X..X...X....
X.X...X..X.....
X....XXXXXX.....
X..XXX...........
.....X..........
..............X
..X...........X....
..X...........X....X...
....X.....
Run Code Online (Sandbox Code Playgroud)
我想找到三个简单的垂直线形式X:
X
X
X
Run Code Online (Sandbox Code Playgroud)
线条的数量在图像中是可变的,每条线条的宽度也是可变的.
使用正则表达式(PCRE/PHP,Perl,.NET或类似)可以:
我想知道正则表达式中tilde运算符的含义是什么.
我有这样的声明:
if (!preg_match('~^\d{10}$~', $_POST['isbn'])) {
$warnings[] = 'ISBN should be 10 digits';
}
Run Code Online (Sandbox Code Playgroud)
我发现这个文件解释了代字号的含义: ~
它说这=~是一个perl运算符,意味着对这个正则表达式运行这个变量.
但为什么我的正则表达式包含两个波浪号运算符?
是否有可能匹配形式的添加(?<a>[01]+)\s*\+\s*(?<b>[01]+)\s*=\s*(?<c>[01]+),在哪里a + b == c(如二进制加法)必须保持?
这些应匹配:
0 + 0 = 0
0 + 1 = 1
1 + 10 = 11
10 + 111 = 1001
001 + 010 = 0011
1111 + 1 = 10000
1111 + 10 = 10010
Run Code Online (Sandbox Code Playgroud)
这些不符合:
0 + 0 = 10
1 + 1 = 0
111 + 1 = 000
1 + 111 = 000
1010 + 110 = 1000
110 + 1010 = 1000
Run Code Online (Sandbox Code Playgroud) 假设我有10,000个正则表达式和一个字符串,我想知道字符串是否与其中任何一个匹配并获得所有匹配.执行此操作的简单方法是仅针对所有正则表达式逐个查询字符串.有更快,更有效的方法吗?
编辑:我尝试用DFA替换它(lex)这里的问题是它只会给你一个单一的模式.如果我有一个字符串"hello"和模式"[H | h] ello"和".{0,20} ello",DFA只会匹配其中一个,但我希望它们都能击中.
在Ubuntu 11.10上安装Apache时,出现以下错误:
configure:错误:找不到APR.请阅读文档.
我按照这里的说明,然后,我得到以下错误:
configure:error:找不到libpcre的pcre-config.PCRE是必需的,可从http://pcre.org/获得
我做错了什么,如何解决?
pcre ×10
regex ×7
php ×4
preg-match ×2
.net ×1
algorithm ×1
apache ×1
debugging ×1
ereg ×1
greedy ×1
perl ×1
preg-replace ×1
regex-greedy ×1
sed ×1
uwsgi ×1