需要帮助组合两个正则表达式

时间:2017-03-09 22:16:38

标签: regex match

我需要结合这两个正则表达式。

第一个:

\)\p{Any}*?\(

这将用于匹配)和(

之间的所有信息

第二个正则表达式:

[^/.;\p{L&}\p{Nd}-]+

这将用于匹配特定的"无效字符"在一个程序中。

我需要这些功能一起使用,以便它只匹配在其间找到的无效字符和(

示例:

111111111(11111#1111)1111
11111111$1111111111111111
1111.;/-1111111(1111&111)
1111111111$11111111111111
1111111(11111111$1111)111
111111111111$111111111111

我需要组合正则表达式的结果才能匹配第2行,第4行和第6行的三个$。

"无效字符的定义" - 所有非字母数字,除了。; / -

我是所有这一切的新手,我尽我所能。这对我来说是一次性的事情。我真的需要一些帮助。我之前发过这个问题,没有人给我任何意见,他们只是批评我的帖子并问我更多的问题。非常感谢任何指导。

哦,并且在EditPad中使用正则表达式,如果这有任何区别。

1 个答案:

答案 0 :(得分:0)

您可以使用基于可变宽度外观的正则表达式(因为EditPad支持无限宽度的外观):

(?<=\)[^(]*?)[^\s(/.;\p{L}\p{Nd}-]+(?=[^(]*(?:\(|$))

请参阅regex demo

<强>详情:

  • (?<=\)[^(]*?) - 必须有),然后在当前位置之前尽可能少的(以外的任何0 +字符
  • [^\s(/.;\p{L}\p{Nd}-]+ - 除空格(\s),(.;,字母,数字和{{1}以外的1个或多个字符}
  • - - 除了(?=[^(]*(?:\(|$))之外的0 +字符(见()之后,必须有(?:\(|$)或字符串结尾(()当前位置。