javascript

git

python

java

github

django

c#

reactjs

loops

git-remote

system.out

git-reset

regex

email

string-parsing

object

git-branch

agile

devops

visual-studio

php-正则表达式的变长lookbehind-assertion替代方法

在Python / PHP / JavaScript中是否存在支持可变长度lookbehind-assertion的正则表达式实现?

/(?<!foo.*)bar/

如何编写具有相同含义但不使用lookbehind-assertion的正则表达式?

是否有可能在一天之内实现这种断言?

我认为情况要好得多。

更新:

(1)已经有一些正则表达式实现支持变长后向断言。

Python模块正则表达式(不是标准re,而是其他regex模块)支持此类断言(并具有许多其他出色功能)。

>>> import regex
>>> m = regex.search('(?<!foo.*)bar', 'f00bar')
>>> print m.group()
bar
>>> m = regex.search('(?<!foo.*)bar', 'foobar')
>>> print m
None

对于我来说,令Perl和Python不能使用的正则表达式感到非常惊讶。 也许,Perl也有“增强的正则表达式”实现吗?

(感谢MRAB +1)。

(2)现代正则表达式中有一个很酷的功能regex

这个符号意味着当您进行替换时(从我的角度来看,断言最有趣的用例是替换),在regex之前找到的所有字符都不得更改。

s/unchanged-part\Kchanged-part/new-part/x

那几乎就像是一个后置断言,但是当然不是那么灵活。

有关regex的更多信息:

  • Perl正则表达式\ K技巧
  • PCRE Regex焦点:\ K

据我了解,您不能在同一正则表达式中两次使用\ K。 而且,直到说到要“杀死”您发现的角色,您都无法说出。 那总是一直到行的开始。

(感谢ikegami +1)。

我的其他问题:

  • 是否可以说regex效应的终点必须是哪一点?
  • Perl / Ruby / JavaScript / PHP的增强型正则表达式实现如何? 类似Python的regex
trans by 2020-08-11T12:12:52Z

如何获取匹配正则表达式的最后一个Git标签

我需要Git命令来获取/查找以'v'开头的最后一个标签,以获取最新的版本提交(我在开头使用带有v字母的标签来标记下一个应用程序版本(例如:v0.9.1beta)。

有什么办法吗?

trans by 2020-08-11T06:10:11Z

python-Django URL模式-字符串参数

具有数字参数的Django网址格式为:

url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail')

如果我的poll_id不是数字而是一个字符串,那么正确的语法是什么?

trans by 2020-08-11T04:45:24Z

如何在jQuery / Javascript中将变量传递给正则表达式

有没有一种方法可以将变量传递到jQuery / Javascript中的正则表达式中?

我想做类似的事情:

var variable_regex = "bar";
var some_string = "foobar";

some_string.match(/variable_regex/);

在Ruby中,您可以执行以下操作:

some_string.match(/#{variable_regex}/)

找到了一个有用的帖子:

如何在JavaScript中连接正则表达式文字?

trans by 2020-08-11T01:59:35Z

sublimetext-正则表达式替换包含替换匹配的值的值在sublime中?

我想出了这个正则表达式,它查找所有以$varFoo开头并包含_下划线的单词:

$varFoo

我基本上是在寻找变量,例如$varFoo等。

如何使用正则表达式组替换内容?

例如,如何删除下划线并使下一个字母变为大写,例如$varFoo

trans by 2020-08-11T00:37:28Z

javascript-Regex exec仅返回第一个匹配项

这个问题已经在这里有了答案:

  • RegEx使用RegExp.exec从字符串中提取所有匹配项 17个答案

我正在尝试实现在golfscript语法页面上找到的以下正则表达式搜索。

var ptrn = /[a-zA-Z_][a-zA-Z0-9_]*|'(?:\\.|[^'])*'?|"(?:\\.|[^"])*"?|-?[0-9]+|#[^\n\r]*|./mg;
input = ptrn.exec(input);

输入仅是正则表达式的第一个匹配项。 例如:"hello" "world"应该返回["hello", "world"],但仅返回["hello"]

trans by 2020-08-10T20:46:37Z

regex-如何获取字符串中所有出现的Ruby正则表达式的匹配数据?

对于字符串中每个正则表达式的出现,我都需要MatchData。 这与“正则表达式的所有匹配项”中建议的扫描方法不同,因为这只会给我一个字符串数组(我需要完整的MatchData,以获取开始和结束信息,等等)。

input = "abc12def34ghijklmno567pqrs"
numbers = /\d+/

numbers.match input # #<MatchData "12"> (only the first match)
input.scan numbers  # ["12", "34", "567"] (all matches, but only the strings)

我怀疑有些方法被我忽略了。 有什么建议吗?

trans by 2020-08-10T18:11:08Z

php-使用正则表达式(PCRE)匹配a ^ n b ^ n c ^ n(例如“ aaabbbccc”)

众所周知的事实是,现代正则表达式实现(最著名的是PCRE)与正则语法的原始概念几乎没有共通之处。 例如,您可以解析上下文无关语法的经典示例{anbn; n> 0}(例如aaabbbccc)使用此正则表达式(演示):

~^(a(?1)?b)$~

我的问题是:您能走多远? 是否还可以使用PCRE来解析上下文相关文法{anbncn; n> 0}(例如aaabbbccc)?

trans by 2020-08-10T17:20:46Z

带有正则表达式的XPath在属性值上匹配

全部-

我已经搜寻并修改了几个小时,以试图破解它,但是我仍然遇到问题。 我有以下XML数据:

<game id="2009/05/02/arimlb-milmlb-1" pk="244539">
  <team id="109" name="Arizona" home_team="false">
    <event number="9" inning="1" description="Felipe Lopez doubles to left fielder Chris Duffy.  "/>
    <event number="15" inning="1" description="Augie Ojeda flies out to center fielder Mike Cameron.  "/>
    <event number="23" inning="1" description="Chad Tracy doubles to right fielder Joe Sanchez.  "/>
    <event number="52" inning="2" description="Mark Reynolds lines out to left fielder Chris Duffy.  "/>
    <!-- more data here -->
  </team>
</game>

我正在尝试获取描述属性值中包含文本“ doubles”的事件节点的总数。 到目前为止,这是我一直在尝试的尝试,但无济于事(irb会引发错误):

"/game/team/event/@description[matches(.,' doubles ')]"

由于我只是想匹配description属性值的一部分,因此可以使用XPath 2.0函数“ matches”,对吗? 如果是这样,我在做什么错?

在此先感谢您的帮助!

trans by 2020-08-10T14:10:10Z

python-Twitter用户名的正则表达式

您能否提供与Twitter用户名匹配的正则表达式?

如果提供了Python示例,则可以额外获得奖金。

trans by 2020-08-10T13:48:05Z

正则表达式-在正则表达式中,什么是回溯/回溯引用?

使用正则表达式回溯是什么意思?

另外,您能提供一个例子吗?

trans by 2020-08-10T11:41:52Z

.net-Regex.IsMatch与string。包含

这两个等效表达式在速度/内存使用方面是否有任何区别:

Regex.IsMatch(Message, "1000")

VS

Message.Contains("1000")

有什么情况比别人更好吗?

该问题的内容如下:我对包含Regex表达式的旧代码进行了一些更改,以查找另一个字符串中是否包含一个字符串。 作为遗留代码,我没有对此进行任何更改,在代码审查中,有人建议将Regex.IsMatch替换为string.Contains。 所以我想知道更改是否值得进行。

trans by 2020-08-10T03:53:16Z

php-从HTML标签删除样式属性

我对正则表达式不太满意,但对于PHP,我想从TinyMCE返回的字符串中的HTML标记中删除3004066212235235183104属性。

因此,将preg_replace()更改为仅香草<p>Test</p>

我如何通过preg_replace()函数来实现此目的?

trans by 2020-08-09T17:26:53Z

regex-如何在python中分割CamelCase

我想要达到的目标是这样的:

>>> camel_case_split("CamelCaseXYZ")
['Camel', 'Case', 'XYZ']
>>> camel_case_split("XYZCamelCase")
['XYZ', 'Camel', 'Case']

所以我搜索并找到了这个完美的正则表达式:

(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])

作为下一个逻辑步骤,我尝试了:

>>> re.split("(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])", "CamelCaseXYZ")
['CamelCaseXYZ']

为什么这不起作用,如何从python中的链接问题中获得结果?

编辑:解决方案摘要

我用一些测试用例测试了所有提供的解决方案:

string:                 ''
AplusKminus:            ['']
casimir_et_hippolyte:   []
two_hundred_success:    []
kalefranz:              string index out of range # with modification: either [] or ['']

string:                 ' '
AplusKminus:            [' ']
casimir_et_hippolyte:   []
two_hundred_success:    [' ']
kalefranz:              [' ']

string:                 'lower'
all algorithms:         ['lower']

string:                 'UPPER'
all algorithms:         ['UPPER']

string:                 'Initial'
all algorithms:         ['Initial']

string:                 'dromedaryCase'
AplusKminus:            ['dromedary', 'Case']
casimir_et_hippolyte:   ['dromedary', 'Case']
two_hundred_success:    ['dromedary', 'Case']
kalefranz:              ['Dromedary', 'Case'] # with modification: ['dromedary', 'Case']

string:                 'CamelCase'
all algorithms:         ['Camel', 'Case']

string:                 'ABCWordDEF'
AplusKminus:            ['ABC', 'Word', 'DEF']
casimir_et_hippolyte:   ['ABC', 'Word', 'DEF']
two_hundred_success:    ['ABC', 'Word', 'DEF']
kalefranz:              ['ABCWord', 'DEF']

总之,您可以说@kalefranz的解决方案与问题不符(请参阅最后一种情况),而@casimir et hippolyte的解决方案占用了一个空格,因此违反了拆分不应更改各个部分的想法。 其余两种选择之间的唯一区别是,我的解决方案在空字符串输入中返回包含空字符串的列表,而@ 200_success的解决方案返回空列表。我不知道python社区在这个问题上的立场,所以我说:我对任何一个都很好。 而且由于200_success的解决方案更简单,所以我接受了它作为正确的答案。

trans by 2020-08-09T12:08:36Z

pcre-在正则表达式中“断言断言必须固定长度”的技术原因是什么?

例如,下面的正则表达式将导致失败报告的断言不是固定长度:

#(?<!(?:(?:src)|(?:href))=["\']?)((?:https?|ftp)://[^\s\'"<>()]+)#S

lookahead没有这种限制。

trans by 2020-08-08T14:07:17Z

Unicode正则表达式; 无效的XML字符

有效的XML字符列表是众所周知的,由规范定义:

#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

我的问题是,是否可以通过使用Unicode常规类别对此PCRR正则表达式(或其逆表达式)进行编码,而无需实际对代码点进行硬编码。 取反可能类似于[\ p {Cc} \ p {Cs} \ p {Cn}],只是不正确地覆盖了换行符和制表符,并且遗漏了一些其他无效字符。

trans by 2020-08-07T08:49:10Z

java-从字符串中提取所有表情符号的正则表达式是什么?

我有一个用UTF-8编码的字符串。 例如:

Thats a nice joke 😆😆😆 😛

我必须提取句子中存在的所有表情符号。 表情符号可以是任何

当使用命令less text.txt在终端中查看此句子时,其显示为:

Thats a nice joke <U+1F606><U+1F606><U+1F606> <U+1F61B>

这是表情符号的对应UTF代码。 表情符号的所有代码都可以在emojitracker中找到。

为了查找所有出现的内容,我使用了正则表达式模式Range: 1F300–1F5FF for Miscellaneous Symbols and Pictographs,但不适用于UTF-8编码的字符串。

以下是我的代码:

    String s="Thats a nice joke 😆😆😆 😛";
    Pattern pattern = Pattern.compile("(<U\\+\\w+?>)");
    Matcher matcher = pattern.matcher(s);
    List<String> matchList = new ArrayList<String>();

    while (matcher.find()) {
        matchList.add(matcher.group());
    }

    for(int i=0;i<matchList.size();i++){
        System.out.println(matchList.get(i));

    }

该pdf内容为Range: 1F300–1F5FF for Miscellaneous Symbols and Pictographs。因此,我想捕获此范围内的任何字符。

trans by 2020-08-07T06:27:41Z

perl-哪些正则表达式可以匹配相同字符的序列?

一个朋友问我,我很沮丧:是否有一种方法可以制作与相同字符序列匹配的正则表达式? 例如,匹配“ aaa”,“ bbb”,而不匹配“ abc”?

m|\w{2,3}| 

不会成功,因为它将匹配“ abc”。

m|a{2,3}| 

不会成功,因为它与'bbb','ccc'等不匹配。

trans by 2020-08-06T23:31:08Z

javascript-正则表达式以匹配括号之间的内容

我很难让这个工作。 我有一个像这样的字符串:

something/([0-9])/([a-z])

我需要使用正则表达式或获取括号之间的每个匹配项并返回匹配项数组的方法,例如:

[
  [0-9],
  [a-z]
]

我正在使用的正则表达式是2999322641812685885824,如果只有一组括号,它似乎与正确的东西匹配。

如何使用JavaScript中的任何RegExp方法获得类似于上述的数组? 我只需要返回该数组,因为数组中返回的项将被循环通过以创建URL路由方案。

trans by 2020-08-06T10:54:39Z

c#-Regex.Replace中的MatchEvaluator如何工作?

这是输入字符串23x * y34x2。我想在每个数字后跟字母,然后在每个字母后跟数字后插入MatchEvaluator(用空格包围的星号)。 因此,我的输入字符串将如下所示:MatchEvaluator

这是完成工作的正则表达式:MatchEvaluator。这是我编写的插入MatchEvaluator的函数。

Regex reg = new Regex(@"\d(?=[a-z])|[a-z](?=\d)");   
MatchCollection matchC;
matchC = reg.Matches(input);
int ii = 1;
foreach (Match element in matchC)//foreach match I will find the index of that match
{
    input = input.Insert(element.Index + ii, " * ");//since I' am inserting " * " ( 3 characters )
    ii += 3;                                        //I must increment index by 3
}
return input; //return modified input

我的问题是如何使用.net MatchEvaluator做同样的工作? 我是regex的新手,也不了解用MatchEvaluator进行良好的替换。这是我尝试编写的代码:

    Regex reg = new Regex(@"\d(?=[a-z])|[a-z](?=\d)");
    MatchEvaluator matchEval = new MatchEvaluator(ReplaceStar);
    input = reg.Replace(input, matchEval);
    return input;
}
public string ReplaceStar( Match match )
{
    //return What??
}
trans by 2020-08-06T09:44:34Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共42页