javascript和c#中的正则表达式问题

Posted

技术标签:

【中文标题】javascript和c#中的正则表达式问题【英文标题】:Regex issuse in javascript and c# 【发布时间】:2018-04-12 16:27:36 【问题描述】:

我必须构建一些正则表达式来验证一些文本。它必须在 javascript 和 c# 中工作。 我必须验证以下形式的文本:

文本 1 文本 2 文本:2500.50 - 有效

文本 1:2500.50 - 有效

文本 - 有效

text:2500.505 - 无效(只允许 2 位小数)

name4: - 无效(如果 ':' 存在,则必须提供值)

名称 - 有效

我最好的镜头是:

^((([\S \r\t\f]+)\s*:\s*([0-9]+[.][0-9]2)\s*)|[A-z0-9 \r\t\f\.\$\^\(\|\)\*\+\?\\\’\&\-\,]+\s*)+$

我必须验证的另一个文本是:

1234 - 有效

1234:3234.577843 - 无效(无效(仅允许 2 位小数))

1234:3234.54 - 有效

1234: - 无效(如果 ':' 存在则必须提供值)

123456:1234.45 - 无效(第一组必须有 4 位数字)。

对于这篇文章,我最好的镜头是:^(([0-9]4)\s*:\s*([0-9]+[.][0-9]2)\s*|[0-9]4\s*)+$

我希望你能帮助我。

谢谢

【问题讨论】:

您应该解释您的正则表达式失败的情况 它必须在 javascript 和 c# 中工作 这是我的正则表达式失败的情况:1234:3234.577843 - 无效(无效(仅允许 2 位小数))。它认为 7843 是另一个有效组 为什么这个问题被标记为R 【参考方案1】:

这个正则表达式怎么样?

^(\d4|[\w ]*[A-Za-z][\w ]*)(:\d+(.\d1,2)?)?$

看起来它给出了预期的结果,请参阅this demo。

【讨论】:

这个正则表达式没问题,但它必须验证整个文本。如果文本包含一个无效大小写,则整个文本无效。 This 文本有效且 here 无效的情况。我还需要 2 个正则表达式,一个用于带有文本 1 的案例,一个用于带有 1234 的 cate。

以上是关于javascript和c#中的正则表达式问题的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式 - 将 C# 正则表达式转换为 JavaScript 正则表达式的量词的目标无效

将 c# 正则表达式转换为 javascript 正则表达式

将 po box javascript 正则表达式转换为 c# 正则表达式

匹配c#中的正则表达式检查交叉连接查询

JavaScript 正则表达式到 C#

正则表达式:匹配 JavaScript 源代码中的“in”运算符