相关疑难解决方法(0)

正则表达式平衡组

我试图在字符串中匹配平衡大括号({}).例如,我想平衡以下内容:

if (a == 2)
{
  doSomething();
  { 
     int x = 10;
  }
}

// this is a comment

while (a <= b){
  print(a++);
} 
Run Code Online (Sandbox Code Playgroud)

我从MSDN中得到了这个正则表达式,但是效果不好.我想提取多个{}的嵌套匹配集.我只对父母比赛感兴趣

   "[^{}]*" +
   "(" + 
   "((?'Open'{)[^{}]*)+" +
   "((?'Close-Open'})[^{}]*)+" +
   ")*" +
   "(?(Open)(?!))";
Run Code Online (Sandbox Code Playgroud)

c# regex balancing-groups

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

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

用于Web提取的正则表达式.积极的前瞻问题

下面是我正在使用的一些数据的示例.我已经阅读了一些涉及此主题的帖子,以及在regex101上尝试了一段时间.

BotInfo[-]: Source IP:[10.1.1.100] Target Host:[CentOS70-1] Target OS:[CentOS
7.0] Description:[HTTP Connection Request] Details:[10.1.1.101 - - [28/May
/2013:12:24:08 +0000] "GET /math/html.mli HTTP/1.0" 404 3567 "-" "-" ] Phase:
[Access] Service:[WEB]
Run Code Online (Sandbox Code Playgroud)

目标是拥有两个捕获组.一个用于标记(例如,源IP,目标主机,描述等),另一个用于最外面的方括号中包含的内容.

它是"最外层"的东西,因为Details标签的内容中有方括号.

这是我目前在所述正则表达式上取得的进展.我正在使用/ g标志:

\s?([^:]+):\[(.*?(?=\]\s.*?:\[))\]
Run Code Online (Sandbox Code Playgroud)

除了边缘情况之外,它处理所有事情(它比需要的更复杂,因为我一直在努力让边缘情况起作用).

我当前的lookahead(\]\s.*?:\[),在高级别,是匹配最后左括号,然后匹配下一个标签.另一个问题是,在最后一场比赛中失败,因为没有以下标签.


编辑:请求成功输出的示例.使用提供的数据,目标是有两个捕获组产生这些对:

MATCH 1
1.  `Source IP`
2.  `10.1.1.100`
MATCH 2
1.  `Target Host`
2.  `CentOS70-1`
MATCH 3
1.  `Target OS`
2.  `CentOS 7.0`
MATCH 4
1.  `Description`
2.  `HTTP Connection Request`
MATCH 5
1.  `Details`
2.  `10.1.1.101 - - [28/May/2013:12:24:08 +0000] "GET …
Run Code Online (Sandbox Code Playgroud)

regex lookahead

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

如何提取循环体?

有多个C++文件.我需要从这些文件中提取for循环体.

有没有一种简单的方法可以使用grep来做到这一点.考虑没有嵌套的for循环.

c++ regex string grep

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

正则表达式可以实现吗?

() [] {}这些是有效的匹配,但是({)}是假的,例如:

() - true
()[]- true
()[]{} - ture
([]) - false
(){[}] - false.
Run Code Online (Sandbox Code Playgroud)

我可以使用正则表达式来计算吗?

java

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

标签 统计

regex ×4

balancing-groups ×1

c# ×1

c++ ×1

grep ×1

java ×1

lookahead ×1

python ×1

string ×1