相关疑难解决方法(0)

如何在不使用Try/Catch的情况下检查字符串是否是JavaScript中的有效JSON字符串

就像是:

var jsonString = '{ "Id": 1, "Name": "Coke" }';

//should be true
IsJsonString(jsonString);

//should be false
IsJsonString("foo");
IsJsonString("<div>foo</div>")
Run Code Online (Sandbox Code Playgroud)

解决方案不应包含try/catch.我们中的一些人打开"中断所有错误",他们不喜欢调试器打破那些无效的JSON字符串.

javascript json

495
推荐指数
14
解决办法
51万
查看次数

正则表达式在方括号之间提取文本

简单的正则表达式问题.我有一个以下格式的字符串:

this is a [sample] string with [some] special words. [another one]
Run Code Online (Sandbox Code Playgroud)

提取方括号内的单词的正则表达式是什么,即.

sample
some
another one
Run Code Online (Sandbox Code Playgroud)

注意:在我的用例中,括号不能嵌套.

regex

358
推荐指数
10
解决办法
49万
查看次数

正则表达式可以用于匹配嵌套模式吗?

是否可以编写与未出现次数的嵌套模式匹配的正则表达式?例如,当外括号内嵌有未知数量的打开/关闭括号时,正则表达式是否可以匹配开括号和右括号?

例如:

public MyMethod()
{
  if (test)
  {
    // More { }
  }

  // More { }
} // End
Run Code Online (Sandbox Code Playgroud)

应该匹配:

{
  if (test)
  {
    // More { }
  }

  // More { }
}
Run Code Online (Sandbox Code Playgroud)

regex nested finite-automata

223
推荐指数
8
解决办法
11万
查看次数

什么是正则表达式平衡组?

我刚刚阅读了一个关于如何在双花括号中获取数据的问题(这个问题),然后有人提出了平衡组.我还不太确定它们是什么以及如何使用它们.

我读了平衡组定义,但解释很难理解,我仍然对我提到的问题感到困惑.

有人可以简单地解释什么是平衡组以及它们如何有用吗?

.net c# regex balancing-groups

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

参考 - 这个正则表达式意味着什么?

这是什么?

这是常见问答的集合.这也是社区Wiki,因此每个人都被邀请参与维护.

为什么是这样?

患的是给我泽码型的问题和答案不佳,没有解释.此参考旨在提供质量问答的链接.

范围是什么?

此引用适用于以下语言:,,,,,,.

这可能过于宽泛,但这些语言共享相同的语法.对于特定功能,它背后的语言标签,例如:

  • 什么是正则表达式平衡组?

regex

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

正则表达式中的递归模式

这与正则表达式非常相关,以匹配外部括号,但是,我特别想知道如何或是否可以执行此正则表达式的递归模式我还没有找到使用这个策略的python示例,所以认为这应该是一个有用的问题!

我已经看到 了一些 索赔 递归的模式可以用来匹配平衡括号,但使用Python的没有例子正则表达式包(注:重支持递归模式,你需要使用正则表达式).

一种说法是语法在b(?:m|(?R))*e哪里:

b是什么开始构造,m是什么可以发生在构造的中间,并且e是在构造的末尾可以发生的


我想在以下内容中提取外部大括号的匹配项:

"{1, {2, 3}} {4, 5}"
["1, {2, 3}", "4, 5"]  # desired
Run Code Online (Sandbox Code Playgroud)

请注意,对于括号,这很容易做到:

re.findall(r"{([^{}]*)}", "{1, {2, 3}} {4, 5}")
['2, 3', '4, 5']
Run Code Online (Sandbox Code Playgroud)

(在我的例子中,我使用的是finditer(在匹配对象上),请看这里.)

所以我曾希望以下或某些变体可行:

regex.findall(r"{(:[^{}]*|?R)}", "{1, {2, 3}} {4, 5}")
regex.findall(r"({(:[^{}]*|?R)})", "{1, {2, 3}} {4, 5}")
regex.findall(r"({(:.*|(?R))*})", "{1, {2, 3}} {4, 5}")
regex.findall(r"({(:.*)|(?R)*})", …
Run Code Online (Sandbox Code Playgroud)

python regex recursive-regex

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

正则表达式检测用于&while循环的半冒号终止C++

在我的Python应用程序中,我需要编写一个匹配C++ forwhile循环的正则表达式,该循环使用分号(;).例如,它应匹配此:

for (int i = 0; i < 10; i++);
Run Code Online (Sandbox Code Playgroud)

......但不是这个:

for (int i = 0; i < 10; i++)
Run Code Online (Sandbox Code Playgroud)

这看起来很琐事,直到您意识到开括号和右括号之间的文本可能包含其他括号,例如:

for (int i = funcA(); i < funcB(); i++);
Run Code Online (Sandbox Code Playgroud)

我正在使用python.re模块.现在我的正则表达式看起来像这样(我已经留下了我的评论,所以你可以更容易理解):

# match any line that begins with a "for" or "while" statement:
^\s*(for|while)\s*
\(  # match the initial opening parenthesis
    # Now make a named group 'balanced' which matches a balanced substring.
    (?P<balanced>
        # A balanced substring is either something that is not …
Run Code Online (Sandbox Code Playgroud)

c++ python regex recursion parsing

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

使用RegEx平衡匹配括号

我正在尝试创建一个.NET RegEx表达式,它将正确地平衡我的括号.我有以下RegEx表达式:

func([a-zA-Z_][a-zA-Z0-9_]*)\(.*\)
Run Code Online (Sandbox Code Playgroud)

我想要匹配的字符串是这样的:

"test -> funcPow((3),2) * (9+1)"
Run Code Online (Sandbox Code Playgroud)

应该发生什么是正则表达式应该匹配从funcPow第二个右括号到第二个右括号.它应该在第二个右括号后停止.相反,它一直匹配到最后一个右括号.RegEx将返回此:

"funcPow((3),2) * (9+1)"
Run Code Online (Sandbox Code Playgroud)

它应该返回:

"funcPow((3),2)"
Run Code Online (Sandbox Code Playgroud)

任何有关这方面的帮助将不胜感激.

.net c# regex

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

是否可以在不使用递归或平衡组的情况下将嵌套括号与正则表达式匹配?

StackOverflow鼓励自己回答问题,所以我决定创建这篇文章来分享我最近发现的东西.

问题:在正则表达式中匹配任意嵌套的括号组,例如Java的java.util.regex,既不支持递归也不支持平衡组.即,匹配3个外部组:

(第一第二第三)))))))

这个练习纯粹是学术性的,因为我们都知道正则表达式不应该被用来匹配这些东西,正如Q-tips不应该被用来清理耳朵一样.

java regex

20
推荐指数
2
解决办法
3090
查看次数

为什么{a ^ nb ^ n | n> = 0}不规律?

在我接受的CS课程中,有一个不常规的语言示例:

{a^nb^n | n >= 0}
Run Code Online (Sandbox Code Playgroud)

我可以理解它不常规,因为没有有限状态自动机/机器可以编写验证和接受此输入,因为它缺少一个内存组件.(如果我错了,请纠正我)

关于常规语言维基百科条目也列出了这个例子,但没有提供(数学)证明为什么它不常规.

任何人都可以启发我并为此提供证据,或者指出我太好的资源?

computer-science fsm regular-language

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