小编Wik*_*żew的帖子

JavaScript RegExps中'y'粘滞模式修饰符的用途是什么?

MDN为JavaScript RegExp引入了'y'粘性标志.这是一个文档摘录:

ÿ

黏; 仅匹配目标字符串中此正则表达式的lastIndex属性指示的索引(并且不会尝试与任何后续索引匹配).

还有一个例子:

var text = 'First line\nSecond line';
var regex = /(\S+) line\n?/y;

var match = regex.exec(text);
console.log(match[1]);        // prints 'First'
console.log(regex.lastIndex); // prints '11'

var match2 = regex.exec(text);
console.log(match2[1]);       // prints 'Second'
console.log(regex.lastIndex); // prints '22'

var match3 = regex.exec(text);
console.log(match3 === null); // prints 'true'
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,g全局标志的使用实际上没有任何区别:

var text = 'First line\nSecond line';
var regex = /(\S+) line\n?/g;

var match = regex.exec(text);
console.log(match[1]);        // prints 'First'
console.log(regex.lastIndex); // prints '11'

var …
Run Code Online (Sandbox Code Playgroud)

javascript regex

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

Java正则表达式只删除数字之间的空格

我有一些字符串:

String a = "Hello 12 2 3 4 45th World!";
Run Code Online (Sandbox Code Playgroud)

我想将数字连接起来: "Hello 12234 45th World"

通过尝试a.replaceAll("(?<=\\d) +(?=\\d)", ""),我得到的结果如下: "Hello 1223445th World".

有没有办法只连接数字,而不是数字 + th

java regex

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

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

考虑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
查看次数

与re.findall一起使用时,Python正则表达式返回匹配的一部分

我一直在尝试自学Python,目前正在使用正则表达式.我一直在使用的教学文本似乎旨在教Perl或其他非Python的语言,所以我不得不调整表达式以适应Python.然而,我并不是很有经验,而且我试图让表达起作用.

问题涉及在文本中搜索价格实例,表示无小数,500美元或小数,500.10美元.

这是文本建议的内容:

\$[0-9]+(\.[0-9][0-9])?
Run Code Online (Sandbox Code Playgroud)

复制文本,我使用此代码:

import re

inputstring = "$500.01"

result = re.findall( r'\$[0-9]+(\.[0-9][0-9])?', inputstring)

if result:
    print(result)
else:
    print("No match.")
Run Code Online (Sandbox Code Playgroud)

但是,结果不是$ 500.01,而是:

.01
Run Code Online (Sandbox Code Playgroud)

我觉得这很奇怪.如果我删除括号和可选的小数部分,它可以正常工作.所以,使用这个:

\$[0-9]+\.[0-9][0-9]
Run Code Online (Sandbox Code Playgroud)

我明白了:

$500.01
Run Code Online (Sandbox Code Playgroud)

如何使正则表达式返回带小数部分和不带小数部分的值?

谢谢.

python regex findall

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

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

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

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

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

谢谢 !

c# regex

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

如何使用Regexp.union构建不区分大小写的正则表达式

我有一个字符串列表,需要使用它们从它们构建正则表达式Regexp#union.我需要生成的模式不区分大小写.

#union方法本身不接受选项/修饰符,因此我目前看到两个选项:

strings = %w|one two three|

Regexp.new(Regexp.union(strings).to_s, true)
Run Code Online (Sandbox Code Playgroud)

和/或:

Regexp.union(*strings.map { |s| /#{s}/i })
Run Code Online (Sandbox Code Playgroud)

两种变体看起来都有些奇怪.

是否有能力使用Regexp.union?构造不区分大小写的正则表达式?

ruby regex

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

正则表达式捕获顺序:贪婪模式后错误的替代匹配

我有这种模式:

(\w+)(sin|in|pak|red)$
Run Code Online (Sandbox Code Playgroud)

替换模式是这样的:

$1tak
Run Code Online (Sandbox Code Playgroud)

问题是这个词:

setesin

将转变为:

setestak

代替

setetak

出于某种原因,in始终优先sin于模式.

如何强制执行该模式以遵循该顺序?

c# regex

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

如何在该位置使用Nginx Regexp

该Web项目将静态内容放入一些/ content / img文件夹中。网址规则是:/ img / {some md5}但在文件夹中的位置:/ content / img / {前两位数字} /

url:      example.com/img/fe5afe0482195afff9390692a6cc23e1
location: /www/myproject/content/img/fe/fe5afe0482195afff9390692a6cc23e1
Run Code Online (Sandbox Code Playgroud)

此nginx位置是正确的,但不安全(符号点在regexp中不好):

        location ~ /img/(..)(.+)$ {
               alias $project_home/content/img/$1/$1$2;
               add_header Content-Type image/jpg;
         }
Run Code Online (Sandbox Code Playgroud)

下一个位置更正确,但不起作用:

        location ~ /img/([0-9a-f]\{2\})([0-9a-f]+)$ {
               alias $project_home/content/img/$1/$1$2;
               add_header Content-Type image/jpg;
         }
Run Code Online (Sandbox Code Playgroud)

帮助我查找错误以获取更正确的Nginx位置。

regex nginx nginx-location

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

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

我有以下正则表达式:

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

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

regex

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

替换双引号内所有出现的 Tab 字符

最后,我想替换 我目前在Regex101上的所有\t包含的内容,尝试对我的正则表达式进行各种迭代......这是我迄今为止最接近的......"

originString = blah\t\"blah\tblah\"\t\"blah\"\tblah\tblah\t\"blah\tblah\t\tblah\t\"\t\"\tbleh\"
regex = \t?+\"{1}[^"]?+([\t])?+[^"]?+\"
\t?+       maybe one or more tab
\"{1}      a double quote
[^"]?+     anything but a double quote
([\t])?+   capture all the tabs
[^"]?+     anything but a double quote
\"{1}      a double quote
Run Code Online (Sandbox Code Playgroud)

我的逻辑有问题!我需要您帮助对制表符进行分组。

c# regex regex-group

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

标签 统计

regex ×10

c# ×4

findall ×1

java ×1

javascript ×1

nginx ×1

nginx-location ×1

python ×1

regex-group ×1

ruby ×1