小编Wik*_*żew的帖子

正则表达式用HTML标签包装字符串

我有一个textarea,有很多行,看起来像:

#1=stuff
#2=more stuff
...
#123=even more stuff
...
Run Code Online (Sandbox Code Playgroud)

我正在使用正则表达式找到#num = pattern(/ ^#[0-9]*= /),我想让它们像锚标签一样

<a href='#123='>#123=</a>
Run Code Online (Sandbox Code Playgroud)

但它不会像我想象的那样起作用.

"#2=".replace(/^#[0-9]*=/,"<a href='$1'>$1</a>")
Run Code Online (Sandbox Code Playgroud)

结果:

<a href='$1'>$1</a>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

javascript regex

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

带有哈希标记的RegEx问题

我试图匹配哈希标签并用锚标签包装它们.这是POC:

<p class="display"></p>
Run Code Online (Sandbox Code Playgroud)
var content = "I like #redApple. I have a #black hat. #red is my favorite color";

var re = /(#[a-z0-9][a-z0-9\-_]*)/ig,
    match, matches = [];

while (match = re.exec(content)) {
    matches.push(match[1]);
}

for (i = 0; i < matches.length; i++) {
    value = matches[i];
    console.log(value + ".....value");
    vSearch = value.replace(/[-\/\\^$*+?.=()|[\]{}]/g, '\\$&');
    console.log(vSearch + ".......vSearch");
    regExSearch = new RegExp(vSearch, 'g');
    console.log(regExSearch + "........regExSearch");
    content = content.replace(regExSearch, '<a href="#">' + value + '</a> ');
}

$(".display").append(content);
Run Code Online (Sandbox Code Playgroud)
a {
    color: red; …
Run Code Online (Sandbox Code Playgroud)

javascript regex jquery html5

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

在具有Java正则表达式问题的组之间插入连字符

我正在进行测试以查找并替换一个由3或4个大写字母组成的字符串,后跟一个带有相同字符串,连字符和相同数字的数字.在Perl中,我可以使用:

s/([A-Z]{3,4})([0-9])/$1-$2/g;
Run Code Online (Sandbox Code Playgroud)

我在Java中试过这个,硬编码如下字符串:

public class Test {
    public static void main(String[] args) {
        String test = "TEST1";

        Pattern p = Pattern.compile("([A-Z]{3,4})([0-9])");

        Matcher m = p.matcher(test);
        if (m.find()) {
            m.replaceAll(m.group(1) + "-" + m.group(2));
        }
        System.out.println(test);

    }
}
Run Code Online (Sandbox Code Playgroud)

但没有找到匹配.我的Java语法是错误的还是正则表达式问题?

java regex

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

恰好与正则表达式匹配一次

考虑M,T,W,TH,F,S,SU是星期几.

我有正则表达式这是除了一个场景运作良好时,有没有平日的序列,即不存在M, T,W,TH,F,S,SU在字符串中预期的位置.

例如,q10MT有效但q10HT无效.

以下是我的表达:

string expression = "q(\\d*)(M)?(T(?!H))?(W)?(TH)?(F)?(S(?!U))?(SU)?";
Run Code Online (Sandbox Code Playgroud)

如果是q10MT,输出是q10MT正确的,但是如果q10HT输出q10不正确,我的正则表达式应该在没有匹配时不返回值或空字符串.

为实现这一目标,我需要做出哪些改变?

c# regex

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

使用Python正则表达式按后缀拆分

我想只用后缀来分割字符串.例如,我希望能够拆分dord word[dor,wor].

我虽然\wd会搜索以此结尾的单词d.然而,这不会产生预期的结果

import re
re.split(r'\wd',"dord word")
['do', ' wo', '']
Run Code Online (Sandbox Code Playgroud)

我怎么能用后缀分割?

python regex split

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

正则表达式捕获句子中的确切单词

我在捕获句子中的特定字符串时遇到一些麻烦。

我使用的正则表达式是\b[0-9]{9,12}\b捕获 9 到 12 位数字的数字。我用它来指定确切的数字的边界,但问题是,当我有一个与此正则表达式匹配的数字后跟一个点时,例如,正则表达式仍然匹配并给我带来很多麻烦。

正如我搜索的那样,问题是也\b使用一些特殊字符作为分隔符,对吗?那么有没有办法考虑,例如123456789.整个字符串和正则表达式将与该示例不匹配?

谢谢 !

c# regex

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

正则表达式:跳过组中字符的第一个匹配项?

从这个字符串

s = 'stringalading-0.26.0-1'
Run Code Online (Sandbox Code Playgroud)

我想提取该部分0.26.0-1。我可以想出各种方法来实现这一点,使用 split 或使用像这样的模式的正则表达式

pattern = r'\d+\.\d+\.\d+\-\d+'
Run Code Online (Sandbox Code Playgroud)

我还尝试使用一组字符,如下所示:

pattern = r'[.\-\d]+'
Run Code Online (Sandbox Code Playgroud)

这给了我:

In [30]: re.findall(pattern, s)
Out[30]: ['-0.26.0-1']
Run Code Online (Sandbox Code Playgroud)

所以我想知道:是否可以跳过组中字符的第一次出现,在本例中是第一次出现-

python regex

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

我可以否定 POSIX 括号表达式吗?

我知道我可以用 POSIX 括号表达式搜索与空格匹配的内容[[:space:]]。我可以使用 POSIX 括号表达式搜索与空格不匹配的内容吗?特别是,它应该匹配的字符包括字母和括号 ( ()。

[[:graph:]] 看起来有点含糊:

[[:graph:]] - 非空白字符(不包括空格、控制字符和类似字符)

regex posix

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

JavaScript 正则表达式仅在前面有另一个字符时才匹配一个字符

我有以下正则表达式:

[^0-9+-]|(?<=.)[+-]
Run Code Online (Sandbox Code Playgroud)

这个正则表达式匹配一个非数字并且不是+和/-或前面有一些东西。但是,JavaScript 正则表达式不支持正向后视。我怎样才能让它工作?+-

regex

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

正则表达式不适用于单个字符

我正在尝试编写正则表达式Java来评估两个用()分隔的字符串,

Example: (test1,test2)
Run Code Online (Sandbox Code Playgroud)

我写了下面的代码

public static void main(String[] a){
    String pattern = "\\([a-zA-Z0-9]+,[a-zA-Z0-9]+.\\)";
    String test = "(test1,test2)";
    System.out.println(test.matches(pattern));
}
Run Code Online (Sandbox Code Playgroud)

它按预期工作,并true在下面的情况下打印

String test = "(test1,test2)";

String test = "(t,test2)";
Run Code Online (Sandbox Code Playgroud)

但是false当我发送到下面时它正在打印

String test = "(test1,t)";
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我之前和之后都使用相同的表达方式,

它返回true(t,test2),但不(test1,t)

请告诉我这个正则表达式中缺少的内容.我需要它来计算并返回true(test1,t)

java regex

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

标签 统计

regex ×10

c# ×2

java ×2

javascript ×2

python ×2

html5 ×1

jquery ×1

posix ×1

split ×1