我有这个正则表达式:
^([A-Z]{2,}\!?) ([^(]+)(?<!\s) ?(?<BR>\()?((?(BR)[^\)]+))(?(BR)(\)))$
https://regex101.com/r/NiMbut/1
验证遵循以下规则的输入字符串:
PREFIX description goes here (optional)
- 需要前缀词(全部大写,可选最后一个字符!);
- 需要“说明在此处”;
- 括号中的可选值。
如果字符串不遵循正确的语法,则正则表达式必须失败。如果有可选值,描述子匹配必须删除描述后的尾随空格)。可选值子匹配没有括号。
它在 PCRE2 php 中完美运行,但在 Ruby 中失败,但我知道为什么。