【问题标题】:Cant quite get my JS regex to work with wildcrd无法让我的 JS 正则表达式与通配符一起使用
【发布时间】:2017-01-15 10:37:53
【问题描述】:

我一直在尝试让 JS 正则表达式匹配如下:

“一些字符串的东西[其他字符串的东西]更多的字符串东西”

'[' 和 ']' 字符是可选的。 然后之间的文本不是可选的(可以是单个字母数字甚至是完整的句子)。 到目前为止,我已经提出了(以及介于两者之间的许多其他想法的迭代):

/^(some string stuff \[?.*\]? more string stuff)$/gim

当我逐行测试时,请注意“gim”参数,查找所有匹配项并忽略大小写。 但是每个测试似乎都令人沮丧地几乎可以工作,但并不完全,我的正则表达式 fu 似乎并不那么强大! 我浏览了其他论坛帖子,同样一些几乎可以工作,但即使经过大量修补也不太可能。 任何帮助将不胜感激!

编辑

开头的“一些字符串内容”和结尾的“更多字符串内容”对于字符串有效是强制性的。只是它们之间的文本有差异; ie 可以是任何东西,只要它不是换行符。

有效文本示例:

some string stuff [other string stuff] more string stuff
some string stuff other string stuff more string stuff
some string stuff string more string stuff
some string stuff [string] more string stuff

无效文本示例:

some string stuff more string stuff
some string stuff [] more string stuff
some string stuff  more string stuff
some string stuff \n more string stuff

【问题讨论】:

  • 这似乎对我有用:regex101.com/r/nK1hS7/1.
  • .* 周围有可选字符没有意义,因为.* 会自行匹配这些字符。
  • 给出一些样本输入和预期输出。您的问题相当广泛/难以解释。
  • 如果您提供了应该匹配的字符串示例,将会有所帮助。您的正则表达式匹配以some string stuff 开头并以more string stuff 结尾的任何内容。
  • 正则表达式中\]? 后面的空格是不间断空格,不是标准空格,所以它不起作用。

标签: javascript regex string match


【解决方案1】:
/^([A-Za-z ])+([\[]?)[A-Za-z ]+([\]]?)([A-Za-z ]+)/gim

【讨论】:

  • 请添加一些关于此解决方案和原因的说明。
猜你喜欢
  • 2017-11-14
  • 1970-01-01
  • 2023-03-30
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
相关资源
最近更新 更多