相关疑难解决方法(0)

这个正则表达式如何与JavaScript兼容?

我在Expresso中找到了一个正则表达式模板,这个工作正常并且返回完美的匹配但是在JavaScript中它不起作用.我知道它可能是为了后视,但我在Regex中的效率不足以使它与JS兼容.

\((?>[^()]+|\((?<number>)|\)(?<-number>))*(?(number)(?!))\)
Run Code Online (Sandbox Code Playgroud)

我想把它与......相匹配

max(50, max(51, 60)) a() MAX(s,4,455)something
Run Code Online (Sandbox Code Playgroud)

......它应该回归......

1: (50, max(51, 60))

2: ()

3: (s,4,455)
Run Code Online (Sandbox Code Playgroud)

这在Expresso中完美运行,但Chrome中的JS控制台说:

Uncaught SyntaxError: Invalid regular expression: /\((?>[^()]+|\((?<number>)|\)(?<-number>))*(?(number)(?!))\)/: Invalid group
Run Code Online (Sandbox Code Playgroud)

如何修改此正则表达式以在JavaScript中正常运行?

javascript regex

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

用于括号内文本的Ruby正则表达式

我正在寻找一个正则表达式来替换括号中的所有项,除非括号在方括号内.

例如

(matches) #match
[(do not match)] #should not match
[[does (not match)]] #should not match
Run Code Online (Sandbox Code Playgroud)

我目前有:

[^\]]\([^()]*\) #Not a square bracket, an opening bracket, any non-bracket character and a closing bracket.
Run Code Online (Sandbox Code Playgroud)

但是,这仍然是方括号内的匹配单词.

到目前为止,我还创建了一个我的进度的rubular页面:http://rubular.com/r/gG22pFk2Ld

ruby regex

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

JS Regex匹配大括号内的所有东西(包括嵌套大括号):"{我想要这个{和这个}并且这个在一个字符串中}"

这意味着我只想剥去封闭的大括号.我可以将"{this stuff of stuff}"与:

"{stuff}".match(/{([^}]*)}/)[1]
Run Code Online (Sandbox Code Playgroud)

我在这里问得太多了吗?

另一个例子,我把这个javascript代码作为字符串:

{
    var foo = {
        bar: 1    
    };

    var foo2 = {
        bar: 2    
    };
}
Run Code Online (Sandbox Code Playgroud)

我想只剥掉外面的大括号:

var foo = {
    bar: 1
};

var foo2 = {
    bar: 2
}
Run Code Online (Sandbox Code Playgroud)

javascript regex

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

嵌套时获取外部"配对"

我正在使用正则表达式<@(.+?)@>来匹配模式,例如:

<@set:template default.spt @>
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我遇到了我需要嵌套模式的情况,例如:

<@set:template <@get:oldtemplate @> @>
Run Code Online (Sandbox Code Playgroud)

而不是获得父对(<@和@>),我得到以下内容:

<@set:template <@get:oldtemplate @>
Run Code Online (Sandbox Code Playgroud)

我不希望它让孩子一个,我只想在所有嵌套情况下最外面的父.如何修复我的正则表达式,以便它能为我做到这一点?我想如果我知道如何要求父母内部<@有一个@>内容,我就能做到,但我不知道如何强制执行.

python regex

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

Python正则表达式:匹配括号/括号对

我想要捕捉彼此相邻的括号/括号对并掌握它们内部的单词.在下面的文字中我想抓住[oh](so)[bad](things).

[oh](so)funny
[all]the[bad](things)
Run Code Online (Sandbox Code Playgroud)

如果我使用正则表达式r'\[(.*?)\]\((.*?)\)'会赶上[oh](so)[all]the[bad](things),这是不是我想要的.

什么是一个很好的正则表达式来解决这个问题?

python regex

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

C#和Regex - 无法识别的分组构造

目前正致力于我的客户/服务器应用程序论文.如果服务器收到这样的信息,我遇到了麻烦:

ProToCooL,unknown|DESKTOP-29COFES,10.20.9.53|Hewlett-Packard,179C,PCWJA001X3UHII,KBC Version 42.32|i5-3320M,2.60GHz,2,4,256,3072,U3E1,GenuineIntel|{2,(IDT High Definition Audio CODEC,IDT),(Intel(R) Display Audio,Intel(R) Corporation)}|{2,(Samsung,003355A3,M471B5773DH0-CH9  ,24,2147483648,1333),(Hynix/Hyundai,467CA639,HMT351S6EFR8A-PB  ,24,4294967296,1333)}|{1,(IDE,Hitachi HTS725050A7E630,      FT51009Y7J61BK,3,733004892,476937.531738281)}|{7,(Send To OneNote 2013,False,Local,Send to Microsoft OneNote 15 Driver),(Microsoft XPS Document Writer,False,Local,Microsoft XPS Document Writer v4),(Microsoft Print to PDF,False,Local,Microsoft Print To PDF),(HP Universal Printing PCL 6,False,Local,HP Universal Printing PCL 6),(HP LaserJet P3010 Series (10.20.9.36),False,Local,HP Universal Printing PCL 6),(Fax,False,Local,Microsoft Shared Fax Driver),(Adobe PDF,True,Local,Adobe PDF Converter)}
Run Code Online (Sandbox Code Playgroud)

我已设置当前模式:

\(((?:[^()]|(?R))+)\)
Run Code Online (Sandbox Code Playgroud)

它可以很好地提取我需要的所有内容,但问题是当我以这种方式在C#中使用它时:

if(soundCount > 0)
        {
            string[] smth;
            string pattern = @"\(((?:[^()]|(?R))+)\)";
            Regex match = new Regex(pattern, RegexOptions.None);

            MatchCollection matches = …
Run Code Online (Sandbox Code Playgroud)

c# regex

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

如何在平衡括号之间得到一个表达式

假设给出了以下类型的字符串:

"(this is (haha) a string(()and it's sneaky)) ipsom (lorem) bla"
Run Code Online (Sandbox Code Playgroud)

我想提取括号中最顶层的子串.即我想获得字符串:"this is (haha) a string(()and it's sneaky)""lorem".

有一个很好的pythonic方法来做到这一点?正则表达式显然不适用于此任务,但也许有一种方法可以让xml解析器完成这项工作?对于我的应用程序,我可以假设括号形成良好,即不像(()(().

python string parentheses xml-parsing

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

如何获取平衡括号组的内容

文本:

text1 = 'xx(aa)(bb)xx'
text2 = 'xx(aa(bb))xx'
Run Code Online (Sandbox Code Playgroud)

期待:

('aa', 'bb')  
('aa(bb)',  'bb')
Run Code Online (Sandbox Code Playgroud)

我的方法,但没有达到预期。

re.compile(r'\(\s?(.+?)\s?\)')
Run Code Online (Sandbox Code Playgroud)

python regex

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

在Python中查找字符串中的多个元素

我的问题是我需要在一个字符串中找到多个元素.

例如,我有一个看起来像这样的字符串:

line = if ((var.equals("INPUT")) || (var.equals("OUTPUT"))
Run Code Online (Sandbox Code Playgroud)

然后我得到这个代码来找到'("'和'")'之间的所有内容

char1 = '("'
char2 = '")'


add = line[line.find(char1)+2 : line.find(char2)]
list.append(add)
Run Code Online (Sandbox Code Playgroud)

目前的结果是:

['INPUT']
Run Code Online (Sandbox Code Playgroud)

但我需要结果看起来像这样:

['INPUT','OUTPUT', ...]
Run Code Online (Sandbox Code Playgroud)

在第一场比赛结束后,它停止搜索其他比赛,但我需要在该字符串中找到与此搜索匹配的所有内容.

我还需要将每个匹配附加到列表中.

python

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

Python正则表达式:匹配嵌套的括号

假设我有一个包含子串的字符串

# the substrings and the whole string surrounded by parenthesis
string = '((substring1)(substring2))'
Run Code Online (Sandbox Code Playgroud)


我想使用正则表达式获取substring1和substring2,但我遇到了问题:(

这就是我现在拥有的:

match = re.search('(\(.*\))', string)
print match.groups()
Run Code Online (Sandbox Code Playgroud)


问题是,结果显示:

('(substring1)(substring2)', )
Run Code Online (Sandbox Code Playgroud)


似乎正则表达式只匹配第一个左括号和最后一个右括号.

换句话说,匹配的正则表达式就像..

(    match.....    )
Run Code Online (Sandbox Code Playgroud)

代替

(    (match1)(match2)   )
Run Code Online (Sandbox Code Playgroud)

如何使正则表达式捕获INNER括号?

谢谢

python regex

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

标签 统计

regex ×8

python ×6

javascript ×2

c# ×1

parentheses ×1

ruby ×1

string ×1

xml-parsing ×1