相关疑难解决方法(0)

学习正则表达式

我真的不懂正则表达式.你能以一种易于理解的方式向我解释这些吗?如果有任何在线工具或书籍,您还可以链接到它们吗?

regex

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

如何从字符串中删除所有数字?

我想删除字符串[0-9]中的所有数字.我写了这个有效的代码:

$words = preg_replace('/0/', '', $words ); // remove numbers
$words = preg_replace('/1/', '', $words ); // remove numbers
$words = preg_replace('/2/', '', $words ); // remove numbers
$words = preg_replace('/3/', '', $words ); // remove numbers
$words = preg_replace('/4/', '', $words ); // remove numbers
$words = preg_replace('/5/', '', $words ); // remove numbers
$words = preg_replace('/6/', '', $words ); // remove numbers
$words = preg_replace('/7/', '', $words ); // remove numbers
$words = preg_replace('/8/', '', $words ); // …
Run Code Online (Sandbox Code Playgroud)

php regex

51
推荐指数
4
解决办法
8万
查看次数

理解正则表达式

我厌倦了对正则表达式的恐惧.这篇文章的主题仅限于正则表达式的PHP实现,但是,任何通用的正则表达式建议显然都会受到赞赏(即不要将我与不适用于PHP的范围混淆).

以下(我相信)将删除数字之间的任何空格.也许有更好的方法,但我仍然想了解发生了什么.

$pat="/\b(\d+)\s+(?=\d+\b)/";
$sub="123 345";
$string=preg_replace($pat, "$1", $sub);
Run Code Online (Sandbox Code Playgroud)

通过这种模式,我的解释是:

  • \b 一个词边界
  • \d+ 一个或多个数字的子模式
  • \s+ 一个或多个空格
  • (?=\d+\b) 先行断言一个或多个数字后跟一个单词边界?
  • 把它们放在一起,搜索任何单词边界,然后是一个或多个数字,然后是一些空格,然后对它进行某种先行断言,并将结果保存在$ 1中,以便它可以替换模式?

问题:

  • 我的上述解释是否正确?
  • 什么是前瞻性断言?
  • 领先/和尾随的目的是什么/

php regex

18
推荐指数
2
解决办法
778
查看次数

如何在Python中调试正则表达式?

有没有办法在Python中调试正则表达式?而且我不是指尝试和尝试直到他们工作的过程:)

以下是如何在Perl中调试正则表达式:


use re 'debug';

my $str = "GET http://some-site.com HTTP/1.1";
if($str =~/get\s+(\S+)/i) {
    print "MATCH:$1\n";
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在运行时在我的计算机上产生以下输出:


Compiling REx "get\s+(\S+)"
Final program:
   1: EXACTF  (3)
   3: PLUS (5)
   4:   SPACE (0)
   5: OPEN1 (7)
   7:   PLUS (9)
   8:     NSPACE (0)
   9: CLOSE1 (11)
  11: END (0)
stclass EXACTF  minlen 5
Matching REx "get\s+(\S+)" against "GET http://some-site.com HTTP/1.1"
Matching stclass EXACTF  against "GET http://some-site.com HTTP/1.1" (33 chars)
   0           |  1:EXACTF (3)
   3        |  3:PLUS(5)
                                  SPACE can match 1 times out …
Run Code Online (Sandbox Code Playgroud)

python regex debugging

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

php正则表达式匹配html标签之外

我正在html页面上创建一个preg_replace.我的模式旨在为html中的某些单词添加周围标记.但是,有时我的正则表达式会修改html标记.例如,当我尝试替换此文本时:

<a href="example.com" alt="yasar home page">yasar</a>
Run Code Online (Sandbox Code Playgroud)

这样yasar读取<span class="selected-word">yasar</span>,我的正则表达式也替换了锚标记的alt属性中的yasar.preg_replace()我正在使用的电流看起来像这样:

preg_replace("/(asf|gfd|oyws)/", '<span class=something>${1}</span>',$target);
Run Code Online (Sandbox Code Playgroud)

如何制作正则表达式,使其与html标签内的任何内容都不匹配?

php regex pcre preg-replace

8
推荐指数
2
解决办法
7065
查看次数

你如何理解一行写的正则表达式?

这是一个很好的文档正则表达式,易于理解,维护和修改.

    text = text.replace(/
    (                               // Wrap whole match in $1
        (
            ^[ \t]*>[ \t]?          // '>' at the start of a line
            .+\n                    // rest of the first line
            (.+\n)*                 // subsequent consecutive lines
            \n*                     // blanks
        )+
    )
    /gm,
Run Code Online (Sandbox Code Playgroud)

但是你如何处理这些?

text = text.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,
Run Code Online (Sandbox Code Playgroud)

是否有某种美化器能够理解它并描述其功能?

regex maintainability

6
推荐指数
2
解决办法
207
查看次数

如何创建一个匹配正则表达式的字符串?

我需要创建一个格式化文档.我知道用于格式化文本的正则表达式,但我不知道如何重现该正则表达式的示例.这个应该是一个内部链接:

'{\[((?:\#|/)[^ ]*) ([^]]*)\]}'
Run Code Online (Sandbox Code Playgroud)

任何人都可以创建一个与此匹配的示例,也许可以解释他是如何得到它的.我被困在'?'.

我从来没有在开头使用过这个元字符,通常我会用它来标记文字不能出现或只出现一次.

谢谢

php regex formatting match

5
推荐指数
1
解决办法
357
查看次数

你如何编写和测试正则表达式?

是他们的任何向导或工具来创建和测试PHP的正则表达式,因为它是如此困难:(?谢谢:)

php regex testing wizard

2
推荐指数
3
解决办法
1143
查看次数

(.*)和(.*?)之间的差异

可能重复:
在regexp中懒惰和贪婪意味着什么?

我知道在正则表达式中*,+或?之后的问号 意味着不合适,但如果我想匹配任何字符,使用(.*)或(.*?)之间的区别是什么?

谢谢.

编辑:在我的情况下,我想检查一个URL.有什么区别

http://site\.net/(.*?)\.html
Run Code Online (Sandbox Code Playgroud)

http://site\.net/(.*)\.html
Run Code Online (Sandbox Code Playgroud)

php regex

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

使用除<b> </ b>和<i> </ i>之外的htmlspecialchars

我想在用户的textarea上使用htmlspecialchars,但我希望他允许使用粗体和斜体.我怎么能不在这些标签上使用htmlspecialchars?

html php

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