相关疑难解决方法(0)

要匹配的正则表达式模式,不包括...... /除外

- 编辑 - 目前的答案有一些有用的想法,但我想要一些更完整的东西,我可以100%理解和重用; 这就是我设置赏金的原因.对于我来说,无处不在的想法比没有标准语法更好\K

这个问题是关于如何匹配模式除了某些情况s1 s2 s3.我举一个具体的例子来说明我的意思,但更喜欢我能100%理解的一般答案,所以我可以在其他情况下重复使用它.

我希望匹配五位数\b\d{5}\b但不能在三种情况下匹配s1 s2 s3:

s1:不在以句子这样的句号结尾的行上.

s2:在parens里面没有任何地方.

s3:不在以#开头if(和结尾的块内//endif

我知道如何使用前瞻和后视来解决s1 s2 s3中的任何一个,尤其是在C#lookbehind或\KPHP中.

例如

S1 (?m)(?!\d+.*?\.$)\d+

s3与C#lookbehind (?<!if\(\D*(?=\d+.*?//endif))\b\d+\b

s3与PHP\K (?:(?:if\(.*?//endif)\D*)*\K\d+

但条件的混合使我的头脑爆炸.更糟糕的是,我可能需要在其他时间添加其他条件s4 s5.

好消息是,我不在乎是否使用PHP,C#,Python或邻居的洗衣机等大多数常用语言处理文件.:)我几乎是Python和Java的初学者,但有兴趣了解它是否有解决方案.

所以我来到这里看是否有人想到一个灵活的食谱.

提示没问题:你不需要给我完整的代码.:)

谢谢.

regex

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

Java在逗号(,)上拆分字符串,但在括号()之间除外

我想在逗号(,)上用java分割字符串,但只要逗号(,)在某个括号之间,就不应该拆分.

例如,字符串:

"life, would, (last , if ), all"
Run Code Online (Sandbox Code Playgroud)

应该产量:

-life
-would
-(last , if )
-all
Run Code Online (Sandbox Code Playgroud)

我用的时候:

String text = "life, would, (last , if ), all"
text.split(",");
Run Code Online (Sandbox Code Playgroud)

我最终将整个文本划分为(最后,如果)我可以看到拆分需要一个正则表达式,但我似乎无法想到如何使它完成工作.

java regex split string-split

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

如果不在方括号或括号内,则用逗号分隔字符串

我有一个长字符串,只要逗号不在方括号或括号内,我想通过用逗号分隔它来将其设置为数组.我尝试了几种变化,但没有得到我正在寻找的东西......

例1:

Harry Potter, Hermione, (Severus, Snape)
Returns:
Harry Potter
Hermione
Severus, Snape
Run Code Online (Sandbox Code Playgroud)

例2:

Harry Potter, [and, the chamber, of secrets], Hermione, (Olivanders, Wands)
Returns:
Harry Potter
and, the chamber, of secrets
Hermione
Olivanders, Wands
Run Code Online (Sandbox Code Playgroud)

java regex

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

由括号外的逗号分隔的jQuery/JavaScript

我正在使用jQuery和JavaScript!

例如,我有一个字符串

"cubic-bezier(0.25, 0, 0.25, 1), ease-in, ease-out, linear"
Run Code Online (Sandbox Code Playgroud)

..我想把它拆分成这个数组:

// (the following has no leading or trailing spaces:)

Array[4]
  0: cubic-bezier(0.25, 0, 0.25, 1)
  1: ease-in
  2: ease-out
  3: linear
Run Code Online (Sandbox Code Playgroud)

..但相反,我得到:

Array[7]
  0: cubic-bezier(0.25
  1: 0
  2: 0.25
  3: 1)
  4: ease-in
  5: ease-out
  6: linear
Run Code Online (Sandbox Code Playgroud)

我尝试了十几个解决方案,但却发现我尝试它的任何方式到目前为止都无效.以下是我以前的一些尝试:

var myString = "cubic-bezier(0.25, 0, 0.25, 1), ease-in, ease-out, linear";

myString.split(",(?![^\(\)]*>)");

myString.split('(?:\(.*?\))|(,)');

myString.split(",(?=[^\]]*(?:\[|$))");

myString.split(",(?![^()]*(?:\([^()]*\))?\))");

myString.split('/,(?![^()]*(?:\([^()]*\))?\)/g');

myString.split(",(?=(([^']*'){2})*[^']*$)(?=(([^\"]*\"){2})*[^\"]*$)(?![^()]*\\))");
Run Code Online (Sandbox Code Playgroud)

我熟悉基本的正则表达式规则,例如捕获组和选择器,但我仍然对前瞻或我如何解决当前情况感到困惑.

javascript regex jquery

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

标签 统计

regex ×4

java ×2

javascript ×1

jquery ×1

split ×1

string-split ×1